HMVC模式
MicroPHP 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
                |- ...
MicroPHP的HMVC支持,HMVC对应配置项如下: /** * 存放HMVC模块的文件夹路径名称 */ $system['hmvc_folder'] = $system['application_folder'] . '/modules'; /** * 注册HMVC模块,这里填写模块名称关联数组,键是url中的模块别名,值是模块文件夹名称 */ $system['hmvc_modules'] = array('demo' => 'hmvc_demo'); MicroPHP HMVC模块结构说明: 每个模块文件夹里面必须有个名称为hmvc.php的模块配置文件。 模块文件夹结构可以参考示例模块:hmvc_demo,位于:application/modules/hmvc_demo 配置说明: 1.模块配置文件和入口文件里面的主配置一样。 2.如果HMVC模块有自己的配置,模块就可以覆盖主配置。 3.模块配置里面已经配置了一些必要的配置项目。 4.如果HMVC模块需要其它不同于主配置的配置,那么取消配置前面的注释,然后配置即可。 提醒: 1.$system['my_loader'],$system['hmvc_folder'],$system['hmvc_modules']这三个配置项在HMVC配置中无效。 2.HMVC模块共享主配置的:模型,视图,helper和类库。当有重名时,优先使用HMVC模块的。 如何访问hvmc模块? 访问hvmc模块很简单,只要在url控制器前面加上“模块名称/”即可,其它规则和以前框架规则一样。 比如: 1.http://127.0.0.1/?demo/,访问的就是hmvc_demo模块默认的控制器和方法。 2.http://127.0.0.1/?demo/home.index,访问的就是hmvc_demo模块home控制器doIndex()方法。 3.http://127.0.0.1/?demo/&a=b,访问的就是hmvc_demo模块默认的控制器和方法,同时GET方式传递了一个a变量。 4.http://127.0.0.1/?demo/home.index&a=b,访问的就是hmvc_demo模块home控制器doIndex()方法,同时GET方式传递了一个a变量。 插件模式下的hmvc: a.MpLoader::instance($renew = null, $hmvc_module_floder = null) b.MpController::instance($classname_path = null, $hmvc_module_floder = NULL) c.MpModel::instance($classname_path = null, $hmvc_module_floder = NULL) 比如: 1.$hmvc_demo_loader=MpLoader::instance(true,'hmvc_demo');实例化模块hmvc_demo的一个loader实例 2.$hmvc_demo_home=MpController::instance('home','hmvc_demo');实例化模块hmvc_demo的一个home控制器对象 3.$hmvc_demo_model=MpModel::instance('HmvcModel','hmvc_demo');实例化模块hmvc_demo的一个HmvcModel模型对象