HMVC ( Hierarchical Model View Controller o Modelo Vista Controlador Jerárquicos ) es la evolución de MVC, resumiendo, lo que hace ésta nueva implementación es dejar la posibilidad de desarrollar una aplicación por módulos y después unirlos como si se tratara de unos plugins.
Cada “triangulo” de MVC (Controlador + Modelo + Vista) funcionan independientemente de los demás, de ahí llamarlos plugins, permitiendo desarrollar aplicaciones robustas y “más profundidad”.
Algunas ventajas pueden ser:
- Al tener una carpeta por cada módulo, las tareas de mantenimiento serán mucho más sencillas.
- Reduce la dependencia entre otras partes de la aplicación.
- Hace que el sistema sea más extensible.
Seguramente hayan más, pero yo sólo he encontrado tres:
Si conocéis alguna más, os invito a que la compartáis con nosotros.
Una de las más utilizadas es Modular Extensions, por su facilidad de uso y buena documentación.
Resumiendo, lo único que hace HMVC es dividir las capas de la aplicación en “triadas” o grupos de tres.
En la mayoría de las librerías mencionadas anteriormente se sobrescriben partes del núcleo de CodeIgniter, como el router, que es la parte encargada de direccionar las peticiones.
Enlace | HMVC an Introduction and Application