MVC vs HMVC for web application development

saturngod picture saturngod · Mar 28, 2011 · Viewed 26.2k times · Source

I'm using MVC pattern for web development. I use codeIgniter framework. I found http://fuelphp.com/ and http://kohanaframework.org/ , they are using HMVC. It still not is clear of HMVC and why we should use HMVC instead of MVC ? I am confused after reading HMVC pattern and it's not too much different from MVC. Can you explain why we should use HMVC for web application development ?

Answer

Nassim picture Nassim · May 18, 2015

HMVC can do anything that MVC can and more

one of the things that you will or had struggled with in MVC is that you can't call a controller from another controller (unless you use a custom library or helper to do that)

in HMVC (Hierarchical Model View Controller) you can do that , i would sum all the qualities in here:

  • reuse your code in other projects
  • simplify maintaining your project
  • scale your project
  • organize code
  • modular structure

you will never go back to MVC after trying HMVC here is a picture to be more clear

See picture

for CodeIgniter use "Modular Extensions - HMVC"

Modular Extensions makes the CodeIgniter PHP framework modular. Modules are groups of independent components, typically model, controller and view, arranged in an application modules sub-directory that can be dropped into other CodeIgniter applications.

Module Controllers can be used as normal Controllers or HMVC Controllers and they can be used as widgets to help you build view partials.

if you want to use codeigniter with HMVC pattern, you can use Modular Extensions - HMVC here

https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc

and here are some nice and funny video tutorials that will get you on rails with HMCV in codeigniter

https://www.youtube.com/watch?v=8fy8E_C5_qQ&list=PLBEpR3pmwCawDZ6FgNYoyvicEz4HrJPec&index=1

hope that helps!