隐藏

CodeIgniter配置之autoload

发布:2014/7/10 15:52:32作者:管理员 来源:本站 浏览次数:1500

CodeIgniter带了自动加载的功能,可以全局加载类库、模型、配置、语言包等,对于需要全局使用的功能相当方便。
例如:有个全局函数写在app_helper.php中,需要全局加载这个函数,只需设置autoload.php:
PHP复制代码
$autoload['helper'] = array('app');
复制代码


接下来,所有的地方都可以使用了,配置、模型等配置相似。但方便的同时也需要考虑下该种加载方式有何弊端。
如果一个项目中分了两块,如前台、后台,那这个功能是否为前后台都必须? 如果前后台还有不同的业务模块区分, 是否是每个模块都要用到?
如果都需要, 那写在这里就很好, 如果不需要, 就不建议写在这里。
对于相关的类库、函数调用应该按需加载
实现加载的方式有很多,可以在指定的页面load, 可以在公用的控制器、函数里面load, 一经load即可全局使用。个人的常用做法是忽略该文件,手动加载全局函数等。
说到这里,顺便说下CI的加载机制。下面为类库、函数等的加载方式:

PHP复制代码
 
$this->load->library('session');
 
$this->load->model('hello_model');
 
$this->load->helper(array('url', 'array'));
 
$this->load->language(array('user_menu', 'user_tips'));
 
复制代码


加载方式统一,使用起来比较简单,但load类库时传参有点不方便。再次load类库时不会再去加载,而是从保存好的静态数组中拿出来,需要注意下成员属性的状态,防止因为值还存在而导致程序异常。