thinkphp 8.0无一键全局关缓存开关,需分层精准控制:模板缓存须设config/template.php中'cache'=>false;路由缓存需app_debug=false后执行php think clear:route && php think route:cache --annotation;php think clear --all不清理模型查询、模板编译、字段结构缓存,须分别调用db::clearcache()、加-t参数、手动清runtime/schema/等。

ThinkPHP 8.0 没有“一键全局关闭缓存”的开关,所谓“关闭”其实是分层控制:模板编译、路由、配置、数据缓存各自独立,关错一层,你改了模板还是看不到效果,清了 php think clear 还是查不到新字段——得按需精准切断。
模板缓存关不掉?检查 template.cache 和 TMPL_CACHE_ON
模板每次修改都要手动删 runtime/view/ 才生效?说明模板编译缓存没真正关掉。TP8 不再读 TMPL_CACHE_ON 全局常量,它只认配置项。
-
config/template.php中必须显式设'cache' => false,不是注释掉或留空 - 若用了多应用(如
app/admin),每个应用的config/template.php都要单独配 - 设完后访问任意页面,立刻检查
runtime/view/下是否仍生成新.php文件;有则说明配置未加载,确认该应用的配置文件路径是否被env或容器绑定覆盖
路由改了不生效?先确认 APP_DEBUG 状态再清缓存
php think clear:route 执行成功,但新 @Route 注解还是 404——大概率是 APP_DEBUG=true 在后台悄悄绕过了所有缓存逻辑,让你误以为“没生效”,其实根本没走缓存路径。
- 在控制器里加
var_dump(config('app.debug'));,输出true就代表当前强制跳过路由缓存,此时删runtime/cache/route.php完全无效 - 生产环境必须确保
config/app.php中'app_debug' => false,且.env里没有APP_DEBUG=true覆盖 - 清完缓存后,务必执行
php think route:cache --annotation(用了注解路由时),否则新规则不会写入route.php
php think clear --all 清不干净?它根本不碰这三类缓存
运行 php think clear --all 后,模型查询结果还是旧的、Cache::get() 还能拿到值、模板变量仍是上一版——这不是命令失效,是它压根就不负责这些。
- 模型查询缓存(如
UserModel::where()->cache(true)->select())完全独立于缓存驱动,得用Db::clearCache()单独清 - 模板编译缓存(
runtime/view/)不在--all范围内,必须加-t参数:php think clear -t - 字段结构缓存(
runtime/schema/或runtime/temp/)由数据库驱动维护,php think clear完全不触碰,得调\think\facade\Db::clearCache()
配置改了 config() 还是旧值?OPcache 和 runtime/config.php 双重锁死
改完 config/app.php 或 .env,config('app.app_name') 死活不变,连重启 PHP-FPM 都没用——问题往往不在框架,而在 PHP 自身的 OPcache 把旧配置文件字节码锁死了。
- 先跑
var_dump(config('app.debug'));:若为false,说明已启用配置缓存,必须重建runtime/config.php - 执行
php think config:cache,再检查runtime/config.php文件大小是否 >30KB;为空或语法错误会静默失败 - OPcache 必须重载:Linux 下常用
sudo systemctl reload php8.1-fpm(版本号按实际调整),Docker 则需kill -USR2主进程或进容器执行opcache_reset()
最易被忽略的点:所有缓存清理操作都依赖 runtime/ 目录可写,而 Web 进程用户(如 www-data)和 CLI 用户(如 root)常属不同组——php think clear 成功不代表 Web 请求就能写入新缓存,得统一权限或改用 chown -R www-data:www-data runtime/。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











