首先要了解,什么是hmvc
HMVC模式即Hierarchical-Model-View-Controller模式,也可以叫做Layered MVC.HMVC模式把客户端应用程序分解为有层次的父子关系的MVC。反复应用这个模式,形成结构化的客户端架构。
如图:
简单来说就是 一个模块里可以再细分多个模块,可以一直接下去细分
CodeIgniter 结构示意
application |- controllers |- controllers1.php |- controllers2.php |- ... |- models |- models1.php |- models2.php |- ... |- views |- views1 |- index.php |- footer.php |- ... |- views2 |- index.php |- footer.php |- ... |- ...
可以看到 他的 controllers , model, view 层都放在一起,没有划分模块,这样子查找修改很不方便
如果实现 HMVC 的话结构就是:
application |- modules |- module1 |- controllers |- controllers.php |- models |- models.php |- views |- index.php |- footer.php |- ... |- module2 |- controllers |- controllers.php |- models |- models.php |- views |- index.php |- footer.php |- ... |- .... |- controllers |- ... |- models |- ... |- views |- ...
在 模块文件夹 modules 中 又划分了 n 个小模块 ,每个模块层都有 controllers , model, view 结构
参考:
http://zh.wikipedia.org/wiki/HMVC