Saltar al contenido

¿Qué es el patrón HMVC?

Hola usuario de nuestra página web, tenemos la solución a lo que buscabas, has scroll y la obtendrás aquí.

Solución:

Sam de Freyssinet (uno de los desarrolladores de Kohana) escribió un artículo bastante detallado sobre HMVC, qué es y cómo se puede utilizar.

El enlace está muerto: Nuevo enlace: https://web.archive.org/web/20160214073806/http://techportal.inviqa.com/2010/02/22/scaling-web-applications-with-hmvc/

Actualmente estoy en el proceso de desarrollar mi propio framework PHP 5.3 HMVC llamado Aleación. Dado que estoy fuertemente invertido y vendido en HMVC, pensé que podría ofrecer un punto de vista diferente, y tal vez una mejor explicación de por qué se debe usar HMVC y los beneficios que brinda.

El mayor beneficio práctico de usar una arquitectura HMVC es la “widgetización” de las estructuras de contenido. Un ejemplo podría ser los comentarios, las calificaciones, las pantallas de feeds RSS de Twitter o blogs, o la visualización del contenido del carrito de compras para un sitio web de comercio electrónico. Es esencialmente una pieza de contenido que debe mostrarse en varias páginas, y posiblemente incluso en diferentes lugares, según el contexto de la solicitud HTTP principal.

Los marcos tradicionales de MVC generalmente no brindan una respuesta directa para este tipo de estructuras de contenido, por lo que las personas generalmente terminan duplicando y cambiando diseños, usando ayudantes personalizados, creando sus propias estructuras de widgets o archivos de biblioteca, o extrayendo datos no relacionados de la solicitud principal. Controlador para pasar a la Vista y renderizar en un parcial. Ninguna de estas son opciones particularmente buenas, porque la responsabilidad de representar un contenido en particular o cargar los datos requeridos termina filtrándose en múltiples áreas y duplicándose en los lugares donde se usa.

HMVC, o específicamente la capacidad de enviar solicitudes secundarias a un controlador para manejar estas responsabilidades, es la solución obvia. Si piensa en lo que está haciendo, se ajusta exactamente a la estructura del controlador. Debe cargar algunos datos sobre los comentarios y mostrarlos en formato HTML. Entonces, envía una solicitud al Controlador de comentarios con algunos parámetros, interactúa con el Modelo, elige una Vista y la Vista muestra el contenido. La única diferencia es que desea que los comentarios se muestren en línea, debajo del artículo del blog que el usuario está viendo en lugar de una página de comentarios completa completamente separada (aunque con un enfoque HMVC, en realidad puede atender solicitudes internas y externas con el mismo controlador y “matar dos pájaros de un tiro”, como dice el refrán). En este sentido, HMVC es realmente solo un subproducto natural del esfuerzo por aumentar la modularidad del código, la reutilización y el mantenimiento de una mejor separación de preocupaciones. ESTE es el punto de venta de HMVC.

Entonces, si bien es interesante pensar en el artículo de TechPortal de Sam de Freyssinet sobre el escalamiento horizontal con HMVC, no es donde más del 90 % de las personas que usan marcos HMVC obtendrán beneficios reales, prácticos y cotidianos.

HMVC está estrechamente relacionado con el enfoque “basado en componentes” para el despacho. Básicamente, en lugar de tener un único despachador, que delega en un controlador, cada controlador puede actuar como despachador por sí mismo. Esto le da una jerarquía de controladores. El diseño es más flexible y provoca una mejor encapsulación del código, pero a un precio de mayor abstracción. Konstrukt está diseñado en torno a este patrón.

Consulte también esta respuesta: https://stackoverflow.com/questions/115629/simplest-php-routing-framework/120411#120411

Reseñas y calificaciones del post

Si para ti ha sido provechoso este post, sería de mucha ayuda si lo compartieras con otros programadores de este modo nos ayudas a extender nuestro contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *