收藏本站 Archiver
    请 后使用快捷导航
    没有账号?入住 CI 中国社区
    查看: 5914|回复: 1

    CodeIgniter配置之autoload

    [复制链接]
    楼主
    发表于 2013年12月6日 22:04:32 | 只看该作者 回帖奖励 |倒序浏览 |
    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类库时不会再去加载,而是从保存好的静态数组中拿出来,需要注意下成员属性的状态,防止因为值还存在而导致程序异常。

    评分

    参与人数 1 威望 +3 理由
    飞翔的小白菜 + 3 很给力!

    查看全部评分

    沙发
    发表于 2016年4月26日 16:20:32 | 只看该作者
    学习啦
    返回列表
    您需要登录后才可以回帖 登录 | 入住 CI 中国社区

    本版积分规则

    AltStyle によって変換されたページ (->オリジナル) /