ci3配置集中于application/config/下的php数组文件,ci4则移至app/config/下以命名空间类形式组织,支持di加载与.env环境配置。

CodeIgniter 3 和 4 的配置文件路径差异显著,核心在于目录结构、命名空间和加载机制的重构。CI4 不再沿用 CI3 的扁平化 config/ 目录,而是采用分层、面向对象、PSR-4 兼容的配置体系。
CI3 配置路径:集中式、无命名空间
所有配置文件统一放在 application/config/ 目录下,例如:
- application/config/config.php —— 全局配置(base_url、index_page 等)
- application/config/database.php —— 数据库连接设置
- application/config/autoload.php —— 自动加载类/辅助函数
- application/config/routes.php —— 路由定义
这些文件是纯 PHP 数组返回,无类定义,不参与自动加载,通过全局函数(如 load_class())动态读取。
使用ydata-profiling(前身为pandas-profiling)生成全面的数据质量报告,包含相关性分析、缺失值模式和基数检测。导出交互式HTML仪表板和JSON摘要。
CI4 配置路径:模块化、带命名空间、类驱动
配置文件全部移至 app/Config/,每个配置项是一个独立的 PHP 类,继承自 BaseConfig,并位于 Config 命名空间中:
- app/Config/App.php —— 替代 CI3 的 config.php,含 app.baseURL、app.forceGlobalSecureRequests 等
- app/Config/Database.php —— 数据库配置,支持多组连接($default、$test 等)
- app/Config/Routes.php —— 路由注册入口(闭包或类方法),不再直接写路由数组
-
app/Config/Feature.php —— 控制高级功能开关(如
$autoRoutesImproved) - app/Config/Security.php —— CSRF、XSS、加密等安全相关配置(CI3 中分散在多个文件)
框架通过依赖注入和服务定位器(service('config') 或 config('App'))按需实例化,支持运行时合并与覆盖。
关键区别总结
以下三点最易被忽略:
-
路径层级不同:CI3 是
application/config/xxx.php;CI4 是app/Config/Xxx.php(首字母大写类名) -
加载方式不同:CI3 依赖手动
$this->config->load();CI4 默认自动加载,且配置类可被 DI 容器管理 -
环境适配机制不同:CI3 用
ENVIRONMENT常量 + 条件判断;CI4 使用.env文件 +Config\DotEnv解析,并支持app/Config/{Environment}/子目录覆盖(如app/Config/Development/)










