2010-06-10 13 views

Respuesta

5

HMVC es más adecuado para Widgets. Por ejemplo, un widget de calendario puede tener su propio controlador, modelos y conjunto de vistas, y simplemente puede llamar a su controlador para representar una determinada vista desde el interior de la página principal para incrustar el widget.

El énfasis está en los elementos GUI reutilizables. Consulte aquí para obtener información adicional: http://www.javaworld.com/javaworld/jw-07-2000/jw-0721-hmvc.html.

Editar: Aquí hay un enlace real centrado en PHP: http://techportal.inviqa.com/2010/02/22/scaling-web-applications-with-hmvc/. Parece tener ilustraciones más bonitas también.

+0

¿Entonces argumentarías que simplemente debes usar un MVC-framework para un sitio web de mayor escala? –

+1

La gente dice que HMVC es más escalable, pero depende de cómo sea su sitio. El hecho de que un sitio sea a gran escala no significa que tenga widgets, o viceversa. –

5

Puede hacer una solicitud de una página (el controlador y la acción se encuentra por las rutas) interna. Esto se puede hacer, por ejemplo:

class Controller_Menu extends Controller 
{ 
    public function action_index() 
    { 
     $this->request->response = view stuff ... 
     $this->request->response->set('...', ...) // some vars 
    } 
} 

y

class Controller_Home extends Controller 
{ 
    public function action_index() 
    { 
     $this->request->response = ...; // some view stuff... 
     $this->request->response->set('menu', 
      Request::factory('menu')->execute()->response // here happens the magic 
     ); 
    } 
} 

Cada página que haves un menú no tiene que hacer toda la lógica para cargar el menú, etc. (por ejemplo, a partir de modelos). Simplemente haga una solicitud al controlador, ejecútelo y obtenga el resultado. Muy útil cuando se usa correctamente.

+0

Creo que lo tengo ahora :) Eso es realmente muy útil. Gracias –

3

Las personas en los foros de KO3 han descrito la capacidad de HMVC como hacer una solicitud AJAX sin la solicitud HTTP adicional.

Un caso del mundo real tal vez si desea construir un sistema que tenga una API como parte integral de la aplicación. Twitter por ejemplo. Con HMVC podría escribir la API primero y luego usarla dentro de la aplicación. Esto ahorra la duplicación de código o una solicitud HTTP adicional.

Por el momento, trabajar de esta manera es bastante limitado, principalmente por el tipo de solicitudes que se pueden enviar. Here is a forum post that I made a little while ago with regards to this. It may clarify how HMVC could be useful.

Cuestiones relacionadas