|
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的精华也在于此)。在一些项目中,比如权限控制、统计等等,扩展核心类将会极大的减少代码数量,当然,这只是个人的看法。
因为内容比较简单,所以没贴出代码。欢迎探讨!
很久没在论坛上发帖了…… |
|