Home > Technology & Education > Wordpress > PHP > Framework > What is HMVC (Hierarchical Model-View-Controller)

HMVC – Hierarchical Model-View-Controller

Layered MVC — HMVC
The HMVC pattern decomposes the client tier into a hierarchy of parent-child MVC layers. The repetitive application of this pattern allows for a structured client-tier architecture,
The layered MVC approach assembles a fairly complex client tier. Some of the key benefits of using HMVC reveal the benefits of object orientation. An optimally layered architecture:

– Reduces dependencies between disparate parts of the program
– Encourages reuse of code, components, and modules
– Increases extensibility while easing maintainability

There are three key aspects of client-tier development:
– GUI layout code: Widget layout and screen look and feel
– GUI feature code: Validations and user-event capture
– Application logic code: App flows, navigation, and server interaction

The HMVC design pattern encourages the decomposition of the client tier into developed, distinct layers for implementing GUI and application services.
A pattern-based architecture results in standardization; the HMVC pattern standardizes the presentation (user-service) layer of Web applications. Standardization in the presentation layer helps contribute to:

– UI consistency: The framework divides a visual entity (view) into panes with specific, consistent responsibilities and functionalities.
– Standardized interaction: The interaction between the various subcomponents within the presentation layer is clearly defined, providing customizable base classes.
– Maintainable code: Using a pattern results in maintainable code that provides a flexible and extensible code base for developing applications.
-Application flow support: The framework structures the presentation service into distinct layers and provides for inter- and intralayer communication. Such a structure offers a strong, orderly way to implement application logic and flow.

A detailed explanation of HMVC can be found on Torkil Johnsen and corephp site.