2010-02-22 14 views
12

el framework PHP que estoy usando (Kohana) implementó recientemente la arquitectura HMVC. He leído que es un mvc en capas donde las solicitudes se hacen una encima de la otra. Es un poco como ajax, solo puramente del lado del servidor. Lo he aplicado un poco en algunos experimentos, pero no puedo aplicarlo a ninguno de mis proyectos (porque no puedo encontrarlo). ¿Alguna vez ha usado HMVC en un proyecto? ¿Cómo te ayudó?¿Para qué puedo usar la arquitectura HMVC?

+1

+1, recientemente cambié a Kohana de Code Igniter y me preguntaba lo mismo. –

Respuesta

14

es un poco como Ajax, simplemente puramente servidor -lado.

Esa es una buena analogía.

HMVC es útil para agregar widgets a páginas: fragmentos modulares de contenido que reutilizará en pocas páginas. Por ejemplo, un widget de carrito de compras. Puede hacer lo mismo de diferentes maneras:

  1. Una biblioteca. Estamos acostumbrados a mover código reutilizable de un controlador a una biblioteca. Luego, desde el controlador, puede cargar los resultados de una llamada a esa biblioteca en una variable de vista.
  2. A view. Puede cargar una vista (parcial) desde la vista principal. Esa vista parcial podría obtener contenido de los modelos. Llamar a los modelos desde las vistas no siempre es popular, pero no necesariamente es incorrecto.

Sin embargo, Kohana HMVC tiene algunas ventajas:

  1. Consistencia - solicitudes HMVC se tratan de la misma como las solicitudes HTTP externos.
  2. Potencia: las solicitudes de HMVC tienen los mismos recursos Kohana que las solicitudes http, incluidas las rutas.
  3. Pluggabilidad: cuando se llama desde una vista, una solicitud HMVC no tiene un acoplamiento entre el controlador (que asigna los resultados de la biblioteca a una vista) y un marcador de posición de vista. Solo tocas un archivo en lugar de dos.

Estoy empezando a apreciar el caso de HMVC y la escalabilidad con las solicitudes http vinculadas por Kiall. Lo mismo podría hacerse con CURL. Sin embargo, podría ser más natural diseñar con Kohana HMVC que con CURL desde el principio.

+0

El enlace del artículo anterior es bueno, pero presenta una respuesta breve pero concisa. ¡Gracias! – yretuta

8

Bien - Sam de Freyssinet (también conocido como samsoir), uno de los desarrolladores de Kohana, publicó recientemente un artículo sobre esta cuestión.

http://techportal.inviqa.com/2010/02/22/scaling-web-applications-with-hmvc/

Si bien no es el único uso de HMVC - Es uno de sus usos más populares. El artículo está principalmente relacionado con la escalabilidad (como en, número de solicitudes por segundo) pero la escalabilidad del código (como en, qué tan fácil/difícil es el código para mantener) puede "resolverse" con las mismas ideas ..

Hope esto ayuda :)

(nota al margen - sus ejemplos de código se basan en cambios personales de Sam a Kohana - ver la nota al final del artículo)

+1

De hecho, me acabo de dar cuenta de que la fecha en la URL es hoy ... buen momento :) – Kiall

2

En un proyecto simple, es posible que ni siquiera encuentre un uso real para el patrón de arquitectura HMVC. Y ni siquiera deberías intentarlo. Aquí está el porqué:

El objetivo de crear una arquitectura HMVC fue hacer MVC un poco DRY'er. Uno de los principales beneficios de HMVC es la reutilización de código.Te permite tener fragmentos que se repiten en toda la aplicación (a veces en el mismo lugar, otras veces, no).

Si está escribiendo como una pequeña aplicación de prueba, no habrá fragmentos repetibles. Por lo tanto, no es necesario utilizar el potencial de HMVC completo. Acabas de terminar con 1 nivel de HMVC, que es tu MVC estándar.

Here you can read the original publication, which introduced HMVC. En 2000a.

Cuestiones relacionadas