common/config 是 Yii2 高级模板的配置中枢,集中管理 frontend、backend、console 三端通用配置;main.php 定义共用组件(db/user/mailer/cache),params.php 存放全局参数,main-local.php 覆盖本地敏感设置,environments 为生成模板源,不直接运行。

common/config 是 Yii2 高级模板的配置中枢,所有跨应用(frontend、backend、console)的通用设置都集中在这里。它不直接运行,而是被各端在启动时按需加载并合并——先加载 common 的配置,再叠加各自应用层的配置,实现“一次定义、多端复用”。
main.php:定义三端共用的基础组件
这是最核心的配置文件,声明了所有环境都依赖的通用服务。比如:
- db:数据库连接,三端共享同一套连接参数和行为
- user:用户认证组件,确保前后端登录态逻辑一致
- mailer:邮件发送器,统一发信渠道和模板路径
- cache:缓存组件,避免各端各自配置导致缓存键冲突或失效不一致
注意:这里只写通用配置,不包含敏感信息或环境差异项。
params.php:存放全局可读参数
这是一个纯数组返回的 PHP 文件,用于定义项目级常量式参数:
- 例如
'adminEmail' => 'admin@example.com',在 frontend 或 console 中都能通过Yii::$app->params['adminEmail']直接获取 - 适合放站点名称、默认分页数、API 超时时间等不随环境变化的值
- 修改后无需重启服务,下次请求即生效(前提是未开启 OPCache 缓存该文件)
main-local.php:本地环境覆盖配置
该文件由 php init 自动生成,专用于填入当前机器特有的设置,比如数据库密码、密钥、调试开关等:
- 它会自动合并进 main.php 的配置中,优先级更高,能覆盖 main.php 里同名的键
- 默认被 .gitignore 排除,防止敏感信息泄露
- 不要手动修改 frontend/config/main-local.php 或 backend/config/main-local.php 中的 db 配置——它们会继承 common 的 db 设置,改这里就等于改全站数据库连接
environments 目录不是配置源,而是模板仓库
environments/dev 和 environments/prod 下的配置是“生成前的模板”,不是运行时读取的位置:
- 执行
php init时,系统才把 environments/dev/common/config/main-local.php 复制到 actual common/config/main-local.php - 你日常维护和修改的,永远是 environments/xxx/ 下的文件;common/config/ 下的对应文件只是产物,不应直接编辑
- 这种设计让团队协作更安全:开发改模板,部署时 init 一把生成,避免手误污染生产配置


















