清理ThinkPHP 6.0缓存时,php think clear默认仅清cache/、log/、session/、trace/,不删view/和config/;需清模板编译缓存须用php think clear --template或手动删runtime/view/下PHP文件;禁用php think clear --all及Dir::delete(runtime_path()),开发期建议关闭模板缓存。

清理 ThinkPHP 6.0 缓存时想保留模板文件不被误删,关键在于区分「哪些缓存可清」「哪些目录必须绕开」。模板本身不依赖 runtime/cache/ 下的数据,但 runtime/view/ 是模板编译产物——它不是你要“保留”的模板源文件(比如 view/index/index.html),而是框架自动生成的 PHP 编译文件;真正要保护的是你的源模板和配置,不是这些中间产物。
只清数据缓存,不动模板相关目录
TP6.0 的 php think clear 默认只清这四个子目录:cache/、log/、session/、trace/,完全不碰 view/ 和 route.php。所以日常清数据缓存,直接运行即可:
-
php think clear—— 安全,不影响模板源文件或编译缓存 - 如需额外清 Redis 或其它驱动缓存,用
php think cache:clear --type=redis(需确认命令存在)
想清模板编译缓存?必须单独处理 view/ 目录
注意:「不影响模板」是指不删你写的 .html 或 .php 源文件,但模板编译缓存(runtime/view/ 下的 PHP 文件)是必须清理才能让模板修改生效的。如果你改了模板却没刷新,恰恰说明该清它了。
- 命令方式(TP6.0):
php think clear --template - 手动方式:进
runtime/view/,删里面所有子文件夹和.php文件,保留空的view/文件夹本身 - 千万别删
runtime/config/—— 里面是数据库连接、中间件等运行时配置,删了会报 Class not found 或数据库 host 为空
避免误操作的三个硬性提醒
- 不要用
php think clear --all:TP6.0 不支持该参数,强行使用可能报错或行为不可控 - 不要在代码里调用
Dir::delete(runtime_path()):TP6.0 没有Dir::delete()方法,且全删 runtime/ 会连带清除路由、日志、会话等,风险极高 - 确认是否启用了模板缓存:
config/view.php中'cache_on' => true才生成runtime/view/;若已关掉,清它也没意义
开发期更省心的做法
与其反复清理,不如让模板实时生效:
立即学习“PHP免费学习笔记(深入)”;
- 在
config/view.php中设'cache_on' => false,关闭模板编译缓存(仅限开发环境) - 配合
APP_DEBUG => true,框架会自动跳过模板缓存检查 - 这样改完 HTML 就能立刻看到效果,彻底避开清理环节



















