PHPMAILER con Phalcon
PHPMAILER con Phalcon
¡INSCRÍBETE A CUALQUIER CURSO CON UN 50% DE DESCUENTO PARA NUEVOS CLIENTES!

Hace tiempo publiqué esta entrada para implementar HMVC en Phalcon utilizando la versión 1.3, en esta entrada vamos a ver cómo implementar HMVC en Phalcon 2, no es que haya cambiado mucho, lo más significativo es cómo debemos implementar los métodos de la interfaz ModuleDefinitionInterface.

El que no conozca phalcon puede revisar las 50 entradas del blog o puede comprar el curso que le ayudará a entender temas más avanzados, es un framework que promete mucho y que personalmente pienso que se va a posicionar muy alto en breve.

Lo mejor de phalcon respecto al resto de frameworks y la gran diferencia es que no necesitas nada para iniciar un proyecto, y aquí lo vamos a ver, con un directorio vacío tenemos suficiente, tu coges lo que necesitas y lo añades al inyector de dependencias, así de sencillo.

Aparte de seguir el tutorial anterior sobre HMVC en phalcon vamos a extenderlo un poco más, configuraremos la base de datos para cada módulo, veremos cómo utilizar modelos, vistas y controladores para que el ejemplo sea completamente funcional.

Estructura de HMVC en Phalcon

Lo primero que debemos tener es un proyecto en blanco, es decir, un directorio vacío y crear la siguiente estructura de directorios.

hmvcphalcon

Esa es perfectamente una posible estructura para implementar HMVC en phalcon, cómo puedes ver, vamos a tener dos módulos, backend y frontend, y cada uno tendrá su propia configuración, la configuración de cada módulo se lleva a cabo en su respectivo archivo Module.php, aunque le puedes llamar cómo quieras, pero antes de eso, vamos a definir nuestros .htaccess, abre primero el de la raíz de la aplicación y añade el siguiente código.


Y ahora haz lo mismo con el que está alojado en public.


Ahora que hemos configurado la aplicación para que el archivo que sea leído cuando estemos en la raíz sea el archivo index.php de public, vamos a definir su contenido.


Desde aquí hacemos lo más importante, establecer los módulos de nuestra aplicación con el método registerModules, configurar las rutas y lanzar la aplicación, ahora podemos definir los archivos Module.php de ambos módulos, empecemos primero por el backend.


Y lo mismo podemos hacer con el módulo frontend.


Ahora ya tenemos definidos nuestros módulos, cómo hemos visto, vamos a utilizar base de datos así que si lo necesitas, a continuación dejo el sql.


Lo siguiente es crear el controlador ProductsController.php en el módulo frontend, así que hazlo y añade el siguiente código.


Simplemente creamos un controlador que hereda de Controller y utilizamos el modelo que pasamos a crear Products para así pasar la información a la vista, así que lo dicho, crea el modelo Products.php en el directorio models y añade el siguiente código.


Ya tenemos el modelo y el controlador, ahora debemos crear las vistas, cómo hemos dicho en el módulo frontend, las vistas estarán alojadas dentro de apps/frontend/views/, y, cómo ya sabemos, el archivo que maneja las vistas es un index.volt o .phtml en la raíz del directorio, así que crea ese archivo .phtml y añade el siguiente código.


Finalmente, para mostrar la información del producto que hemos obtenido en el método index del controlador products crea un directorio en views llamado products y dentro un archivo llamado index.phtml con el siguiente código.


Si ahora te diriges a la ruta products/1 verás que el resultado es el siguiente.

hmvcphalconview

Así de sencillo es crear una completa aplicación utilizando HMVC en Phalcon 2, espero que te haya gustado y recuerda que si tienes dudas hay un curso de phalcon donde vemos temas que no se ven en el blog para dar un repaso más a fondo.