要真正关闭ThinkPHP5.0配置缓存,需同时禁用模板编译缓存(设'TMPL_CACHE_ON'=>false)、启用调试模式('app_debug'=>true)并清空runtime/cache目录,三者缺一不可。

ThinkPHP5.0 的“配置缓存”不是单一开关,而是由多个缓存环节共同作用的结果。要真正关闭配置相关的缓存行为,需从模板编译、运行时配置加载、调试模式三方面入手,不能只改某一个参数。
关闭模板编译缓存
模板文件(如 .html)首次访问时会被编译成 PHP 文件并缓存到 runtime/temp/ 目录。开发中修改模板后看不到效果,多半是这个缓存在起作用。
- 在对应模块的配置文件中(例如 application/config.php 或 application/index/config.php),添加或修改:
'TMPL_CACHE_ON' => false,
该设置让每次请求都重新解析模板,不复用已编译的 PHP 文件。
禁用运行时配置缓存
TP5.0 会把加载的配置合并后写入 runtime/cache/ 下的 PHP 文件(如 config.php),后续请求直接 require 这个文件,跳过重复解析。
立即学习“PHP免费学习笔记(深入)”;
- 默认情况下该行为无法通过配置项关闭,但可通过以下方式绕过:
- 确保 APP_DEBUG = true(见下一点),框架会自动跳过配置缓存写入;
- 手动清空 runtime/cache/ 目录,或部署脚本中加入
rm -rf runtime/cache/*; - 若必须关闭自动缓存,可重写
think\App::initCommon()中的配置加载逻辑(不推荐,破坏框架稳定性)。
启用调试模式(最简单有效)
开启调试模式是关闭所有缓存的快捷方式,包括模板、配置、路由、日志格式等。
- 在 application/config.php 中设置:
'app_debug' => true,
- 同时确认入口文件 public/index.php 中未定义
APP_DEBUG常量,或已设为true; - 该模式下,框架不会生成任何缓存文件,所有配置实时读取、模板即时编译、路由动态解析。
补充:避免误操作
不要仅修改 'cache' => ['type'=>'file'] 或删掉 cache 配置——这影响的是应用层数据缓存(如 Cache::set()),和配置缓存无关。
也不建议用 Cache::clear() 清除配置缓存,它清的是数据缓存区,对 runtime/cache/config.php 无影响。



















