Como configurar HMVC en CodeIgniter


HMVC es una evolución del patrón MVC, el cual se utiliza en la mayoría de las aplicaciones web de hoy en día. HMVC llegó como una respuesta a los problemas de escalabilidad en las aplicaciones que utilizan MVC. Esta extensión de CodeIgniter permite el uso del patrón Modelo Vista Controlador Jerarquico (HMVC) y hace que su aplicación sea modular. Esto permite una fácil distribución de componentes independientes (MVC) en un solo directorio a través de otras aplicaciones CodeIgniter. Todos los módulos están agrupados en su propia carpeta y pueden tener su propio controlador, modelo, vista, biblioteca, configuración, ayuda y archivos de idioma.

Ventajas de la implementacion del patrón HMVC

  • Modularización: Reducción de la dependencia entre las distintas partes de la aplicación.
  • Organización: Tener una carpeta para cada una de las tríadas pertinentes hace que para una carga de trabajo más ligero.
  • Reutilización: Por la naturaleza del diseño es fácil de reutilizar casi cada pieza de código.
  • Extensibilidad: Hace que la aplicación más extensible sin sacrificar la facilidad de mantenimiento.

Como configurar HMVC en CodeIgniter

  1. Descarga la extensión codeigniter-modular-extensions-hmvc.
  2. Descomprimir el paquete de codeigniter-modular-extensions-hmvc.
  3. Mueva todos los archivos de la carpeta recién extraída del ./core/ al directorio de CodeIgniter /application/core/ en su servidor.
  4. Mueva el directorio MX y todos sus archivos de la carpeta recién extraída del directorio ./third-party/
    al directorio /application/third-party/ en su servidor.
  5. Cree una nueva carpeta llamada modules en el directorio application, donde se van a crear los módulos HMVC para su proyecto.

Probando HMVC en CodeIgniter

Para probar nuestro CodeIgniter con la extensión HMVC recien instalada hagamos una prueba sencilla sin tener que escribir una linea de codigo:

  1. Vayamos al directorio aplication/modules y crearemos un directorio llamado welcome.
  2. Ahora movamos el fichero application/controllers/welcome.php para application/modules/welcome/controllers/welcome.php
  3. Ahora movamos el fichero application/views/welcome_message.php para application/modules/welcome/views/welcome_message.php
  4. Ahora http://localhost/nombre_proyecto/index.php/welcome y nos saldra la misma pagina de bienvenida solo que esta ves nuestra aplicacion web estara usando HMVC.

Concluyendo…

El uso de HMVC hace de CodeIgniter un Framework PHP modular. Los modulos son grupos de componentes independientes, tipicamente MVC y dispuestos en sub-directorios de modulos de aplicacion que pueden incluirse facilmente dentro de otras aplicaciones CodeIgniter. Este Sistema no es nuevo ya lo vemos en Symfony2 solo que aqui se llama Bundles y tambien lo vemos en Django solo que aqui se llaman Aplicaciones. Recuerda siempre dejarnos tus comentarios en Disqus, Twitter o Facebook y así poder retroalimentar nuestros conocimientos. Hasta la próxima.