Nano MVC Framework PHP

Nano framework es un marco de trabajo muy pequeñito en PHP totalmente en español que utiliza el patrón MVC (Modelo, Vista, Controlador) para la separación de código por responsabilidades en los proyectos.

El marco de trabajo cuenta con:

  • Soporte de namespaces.
  • Integración con DBAL (Capa de Abstracción de Base de Datos) de Doctrine, soporte de los motores más populares como MySQL y Postgres.
  • Auto-completado total al integrarse con algún IDE como NetBeans o Eclipse.

Estructura

./controlador: Contiene las clases controladoras.
./libreria: Contiene las clases de terceros.
./modelo: Clases de la capa de negocio, responsables de la recuperación y guardado de información en un medio persistente (Base de datos, XMLS, TXTS, etc.), envío de
correos, servicios web, etc.
./recursos: Contiene las carpetas CSS y JS para almacenar los archivos CSS y scripts
en Javascript.
./sistema: Clases necesarias para el funcionamiento del framework.
./vista: Almacena los archivos PHP que pintan las páginas (código html).

Requisitos

  • Apache
  • PHP 5.3+

Configuración

El primer paso es habilitar el módulo mod_rewrite de Apache, hay muchas guías disponibles en Google.

Lo siguiente es editar el archivo config.php que se encuentra en la carpeta sistema:

La primera constante DIRECCION es la ruta de nuestro proyecto, la constante MOSTRAR_ERRORES es una bandera para activar o desactivar los errores en el proyecto y por último la variable $conexiones, arreglo asociativo con el listado de conexiones a la base de datos, bd1 es la llave con la que podremos recuperar la referencia de conexión desde código, y los datos de conexión mysql://root:1234@localhost/test, donde mysql es el motor a utilizar, root es el usuario, 1234 es el password, localhost el dominio o IP del servidor y test el nombre de la base de datos, se pueden agregar las conexiones que se deseen y hacer referencia desde código usando la llave que se asignó.

Controladores

Los controladores se crean en la carpeta controlador, ejemplo de implementación:

Por defecto se crea una instancia del controlador Index y se llama a su método index si se entra a la dirección del proyecto sin indicar ningún parámetro, las siguientes direcciones imprimirían Hola Mundo!:

  • http://localhost/nano
  • http://localhost/nano/Index/index

No estamos limitados a crear los controladores en la carpeta controlador, también podemos crear subcarpetas dentro de esta y organizar nuestros controladores de una mejor manera, para ello también hay que indicar el namespace en el controlador ya que el nombre del namespace se traduce a la ruta de carpetas del proyecto, por ejemplo:

El controlador estará ubicado en la ruta controlador/modulo1, ve además como el namespace está declarado: namespace controlador\modulo1;

Para llamar al método index de este controlador llamamos la siguiente dirección desde nuestro navegador de preferencia:

http://localhost/nano/modulo1_Index/index

Con el guión bajo separamos el namespace de la clase desde la dirección a invocar, por lo que el guión bajo no debería se utilizado como parte del nombre de las clases.

Nota: Recuerda que los controladores sólo tienen como responsabilidad manejar los eventos del sistema.

Modelos

Las clases del modelo van en la carpeta de modelo, al igual que los controladores podemos organizar las clases en carpetas y sólo definir el namespace de acuerdo a la ruta de la carpeta donde se encuentra ubicada, es importante recalcar que en esta capa del modelo va la lógica principal de nuestra aplicación por lo que además de incluir los servicios de recuperación y guardado de datos a algún medio persistente, también podemos hacer uso de otros servicios como el envío de correo, la validación de datos, etc.

La clases definitivas en el modelo, quedan a nuestro criterio el cómo crearlas, tenemos la libertad de hacer nuestro modelado de clases, coloco ejemplo de implementación de una clase llamada Usuario que viene en la demostración:

El namespace de esta clase es modelo\com\jahepi, por lo que la clase se encuentra en la siguiente ruta de carpetas modelo/com/jahepi.

Otro punto importante es la siguiente instrucción:

Con la cual podemos hacer referencia a la conexión de la base de datos que definimos en el archivo config.php en el apartado de configuración.

Vistas

Las vistas o los archivos que tienen los elementos visuales se deben guardar en la carpeta vista, desde nuestro controlador podemos cargar un vista de la siguiente forma:

Donde bienvenida.php es nuestro archivo vista que se encuentra ubicado en vistas/bienvenida.php:

Sólo el controlador tiene que regresar una instancia de tipo Respuesta donde tenga como salida el contenido de bienvenida.php.


Nano framework viene con una demostración de un login de acceso básico junto con un ABC o CRUD de usuarios.

Para descargar Nano Framework clic aqui.

Para ver demostración en línea clic aquí.

Leave a Reply