在 CodeIgniter 中,自动加载库和助手需统一配置于 application/config/autoload.php 的 $autoload 数组中,库名与助手名均不带 .php 后缀,系统按约定路径自动加载;需注意仅对高频资源启用、避免命名冲突、Composer 包需额外引入,且修改后须清除缓存。

在 CodeIgniter 中,自动加载库(libraries)和助手(helpers)只需统一配置在 application/config/autoload.php 文件里,无需分别写多段逻辑。关键在于正确填写 $autoload 数组对应键的值,且不带 .php 扩展名。
自动加载库和助手的配置格式
打开 autoload.php,找到类似这样的数组定义:
-
$autoload['libraries'] = array('session', 'database');→ 加载system/libraries/或application/libraries/下的类 -
$autoload['helpers'] = array('url', 'form', 'text');→ 加载application/helpers/下的辅助函数文件(如url_helper.php)
注意:多个项用英文逗号分隔,名称不写后缀;系统会自动按约定路径查找并加载。
常见组合示例
比如你同时需要 Redis 库、Session 库,以及自定义的 app_helper 和 myutil_helper,就写成:
$autoload['libraries'] = array('redis', 'session');$autoload['helpers'] = array('url', 'form', 'app', 'myutil');
其中 app 对应 application/helpers/app_helper.php,redis 对应 application/libraries/Redis.php 或 CI 内置的 system/libraries/Redis.php(若存在)。
注意事项与避坑点
自动加载虽方便,但要注意以下几点:
- 只对全局高频使用的资源启用,避免无谓开销(如前台不需要的后台专用库)
- 助手函数名不能与 PHP 内置函数冲突(例如不要起名
date_helper.php) - 若使用 Composer 包(如 Guzzle),不能靠
$autoload['libraries']加载,需额外引入vendor/autoload.php(通常在index.php中) - 修改后务必清空缓存(如有启用 config 缓存),否则新配置可能不生效
验证是否成功加载
在任意控制器方法中快速测试:
- 调用助手函数,如
base_url()(来自 url helper)或你自定义的my_helper_func() - 使用库实例,如
$this->redis->get('key')或$this->session->has_userdata('user_id') - 若报错 “Call to undefined function” 或 “Call to a member function on null”,说明加载失败,检查拼写、路径、文件命名是否规范


















