|
本帖最后由 ares333 于 2010-9-8 08:47 编辑
之前的那个版本太过复杂,还要修改系统文件,虽然功能强大,但是难于维护和使用,所以后来写了一个绿色环保的HMVC,实用价值很大,已经稳定运行在两个网站.
不费话了直接说原理,扩展Loader.php,添加一个module()函数,module都放在applica/modules 目录,可以支持多级目录,module可能用到的视图文件放在views/_modules目录,这两个目录是必须的,要不module放哪里呀,但是这两个目录位置可以在扩展后的loader中修改.
必读:
1。调用
控制器或视图中,$this->load->module('header',array());
2.在module中调用视图
很简单,只要module的data属性不为空就行也就是$this->data;
视图在哪里?视图默认在application/views/_moduels/(module名字)/(module方法).php,
3.返回值
如果调用了视图返回的是渲染后的视图,直接echo就行,否则返回你return的内容.
4。定义module
这个就更没技术含量了,没有继承任何父类,只能用万能函数了(&get_instance());
5.安装
直接拷贝X_Loader到application的libraries目录完事,别的什么也不用动,纯绿色
举例(简单的演示):
定义module
application/modules/views.php
PHP复制代码
<?php
class Views_module {
public $CI;
function __construct (){
$this->CI=&get_instance ();
}
//通用头部视图
function header(){
$this->data['login']=TRUE;
}
//通用底部视图
function footer (){
$this->data['temp']='';
}
}
复制代码
定义页面底部的视图:
application/views/_modules/views/footer.php
主视图(主控制器我就不写了):
HTML复制代码
................
<body>
<?php echo $this->load->module('views/header');?>
<div id="container">
</div>
<?php echo $this->load->module('views/footer');?>
</body>
</html>
复制代码
优点:
绿色环保无污染,简单实用!容易扩展
来点题外话,什么是最好的?
有3点必须满足:
1。简单
2。实用
3。适合我(不是我)用
[attach]
964
[/attach] |
|