ThinkPHP 5.1 中 extra 目录下的 PHP 配置文件(如 application/extra/web.php)默认自动加载,无需注册;其返回的关联数组会合并入全局配置,加载时机在应用配置之后、场景配置之前,同名项被覆盖。

ThinkPHP 5.1 中,extra 目录下的配置文件默认自动加载,无需额外注册或调用代码。只要把 PHP 配置数组文件放在 application/extra/(或模块级 application/module_name/extra/)目录下,框架就会在启动时按规则识别并合并进全局配置。
extra 目录的位置和命名要求
必须严格满足以下两点,才能被自动识别:
- 目录路径为
application/extra/(应用级)或application/[模块名]/extra/(模块级) - 文件后缀为
.php,且返回一个关联数组,例如:
return ['WEB_NAME' => '我的网站', 'WEB_BEIAN' => '粤ICP备12345678号'];
自动加载时机与优先级
extra 配置属于“扩展配置”,在配置加载流程中排在“应用配置”之后、“场景配置”之前。这意味着:
- 同名配置项会被 extra 文件中的值覆盖(如果应用配置里没定义,则以 extra 为准)
- 多个 extra 文件之间无固定加载顺序,但建议避免同名键冲突
- 文件名本身不参与配置键命名,只用于标识;最终键名来自数组内部的 key
常见用法示例
比如在 application/extra/web.php 中写:
立即学习“PHP免费学习笔记(深入)”;
return ['WEB_TITLE' => '首页标题', 'WEB_COPYRIGHT' => '© 2026 All Rights'];控制器中即可直接使用:
Config::get('WEB_TITLE'); // 返回 '首页标题'模板中可写:
{$Think.config.WEB_COPYRIGHT}不生效的典型原因
- 文件放在
extra目录外,如config/extra/或extend/extra/ - 文件没有
return数组,或语法错误导致解析失败 - 文件名含大写字母或特殊符号(虽支持,但易引发路径大小写问题,建议全小写+下划线)
- 开启了配置缓存但未更新(运行
php think clear:config或手动删runtime/config/下缓存文件)



















