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?
Respuesta
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:
- 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.
- 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:
- Consistencia - solicitudes HMVC se tratan de la misma como las solicitudes HTTP externos.
- Potencia: las solicitudes de HMVC tienen los mismos recursos Kohana que las solicitudes http, incluidas las rutas.
- 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.
El enlace del artículo anterior es bueno, pero presenta una respuesta breve pero concisa. ¡Gracias! – yretuta
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)
De hecho, me acabo de dar cuenta de que la fecha en la URL es hoy ... buen momento :) – Kiall
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.
- 1. ¿Para qué puedo usar POCO?
- 2. MVC vs HMVC para el desarrollo de aplicaciones web
- 3. Usar el contenedor IoC para la arquitectura de complementos
- 4. ¿Para qué puedo usar Google App Engine?
- 5. ¿La estructura HMVC de Kohana 3.0 en términos sencillos?
- 6. ¿Qué arquitectura para la aplicación web con aplicaciones móviles?
- 7. Problemas con las extensiones modulares de HMVC para CodeIgniter
- 8. arquitectura para alta disponibilidad
- 9. Símbolos no definidos para la arquitectura i386:
- 10. ¿Qué es la arquitectura N-Tier?
- 11. ¿Qué es la arquitectura orientada a servicios?
- 12. ¿Lo último en arquitectura MVC?
- 13. Ejemplos de Hierarchical-Model-View-Controller (HMVC)?
- 14. Arquitectura para la extensión/comunicación del complemento
- 15. Arquitectura para aplicaciones WinForms?
- 16. Arquitectura para la aplicación SaaS de RoR
- 17. Arquitectura para la nueva aplicación web ASP.NET
- 18. ¿Cómo puedo obtener la arquitectura de un archivo '.a'?
- 19. símbolos no definidos para la arquitectura i386
- 20. ¿Puedo usar CALayer para acelerar la visualización?
- 21. ¿Dónde puedo encontrar plantillas/diagramas de visio decentes para la arquitectura del software?
- 22. Ninguna regla para procesar archivos para la arquitectura armv6
- 23. ¿Qué mecánico puedo usar para ordenar una matriz?
- 24. ¿Arquitectura de servidor para un juego multijugador?
- 25. ¿Por qué no puedo usar DataTrigger para establecer TextBox.IsEnabled = True?
- 26. ¿Qué herramientas puedo usar para generar certificados X.509?
- 27. ¿Qué puedo usar para crear un cliente REST en Java?
- 28. ¿Qué puedo usar para sustituir en HTML?
- 29. ¿Qué bibliotecas puedo usar para construir una GUI con Erlang?
- 30. ¿Qué macro predefinida puedo usar para detectar clang?
+1, recientemente cambié a Kohana de Code Igniter y me preguntaba lo mismo. –