用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3729|回复: 2
收起左侧

[控制器] 关于header和footer引用的另一种方式

[复制链接]
发表于 2012-5-12 00:53:14 | 显示全部楼层 |阅读模式
header和footer的引用,有很多种办法,hex的hmvc是一种方案。
这里所公布的方案,是利用CI的扩展性实现的。
具体的方式是(有数据库读取的header和footer):
首先扩展一下核心类controller,在controller中把header和footer读取的数据库内容保存在数组中。
在这个扩展类中,你需要定义个一个public变量(如public $_data = array();),并在扩展的controller中的构造函数中指认,即$this->_data[] = '';这种方式。
第二,在需要使用header和footer的控制器中,定义与扩展controller中相同的public变量,如public $_data = array();然后在类中有输出的function中,用$this->load->view('your_view',$this->_data)输出。
第三,就是header和footer的输出位置。你可以在控制器中输出,也可以在试图view中输出,具体哪种方式并不固定,主要看项目的需求。
第四,就是缓存的问题。如果不缓存,每次扩展的controller被extends一次,都要读取相应的数据库。因此,可以考虑论坛中的各种缓存方案。
CI,我个人认为,在保证原始的功能前提下,是应该能扩展就扩展的(貌似CI的精华也在于此)。在一些项目中,比如权限控制、统计等等,扩展核心类将会极大的减少代码数量,当然,这只是个人的看法。
因为内容比较简单,所以没贴出代码。欢迎探讨!
很久没在论坛上发帖了……
发表于 2012-5-12 02:42:07 | 显示全部楼层
我個人喜好第二種....比較原生態一點吧.
发表于 2012-5-12 10:33:01 | 显示全部楼层
给点代码吧,楼主?

本版积分规则