在thinkphp项目中可使用php think clear命令一键清空runtime下所有缓存子目录;也可通过临时控制器http触发清理,或编写clear_all.php脚本额外删除runtime/*.php文件。

在ThinkPHP项目中快速清空全部缓存(包括模板、路由、配置、数据、日志等),避免手动逐个删除runtime目录下子文件夹带来的遗漏或权限错误。
使用内置命令行指令一键清理
进入项目根目录,执行系统级命令行操作,调用ThinkPHP自带的clear指令。
在终端中运行:php think clear。
该命令会自动扫描并清空runtime/目录下所有缓存子目录,包括cache/、log/、route/、temp/、view/等,无需指定路径。
执行后终端将显示已清除的目录列表,例如:Cleared: runtime/cache、Cleared: runtime/route等。
强制刷新全部缓存(含OPcache)
方法一:通过HTTP触发清空(适用于无命令行权限的生产环境)
在app/controller下新建一个临时控制器,例如CacheClear.php,内容如下:
<?php declare(strict_types=1); namespace app\controller; use think\App; class CacheClear { public function index(App $app) { \think\Cache::clear(); \think\Route::clear(); \think\Config::reset(); return 'All caches cleared.'; } }
访问http://yourdomain.com/index.php?s=/cache_clear/index即可触发清理。
【注意:此接口必须在调试模式下启用,且上线前务必删除该控制器或加IP白名单】
方法二:手动重置OPcache(仅限PHP-FPM环境)
在命令行中执行:sudo systemctl reload php*-fpm(将*替换为实际PHP版本号,如8.1)。
或直接调用opcache_reset()函数——在任意可执行PHP脚本中写入<?php opcache_reset(); ?>并访问一次。
编写自定义清除脚本(支持条件过滤)
第一步:在项目根目录创建clear_all.php文件。
第二步:写入以下内容:
<?php define('THINK_PATH', __DIR__ . '/thinkphp/'); define('APP_PATH', __DIR__ . '/app/'); require __DIR__ . '/thinkphp/base.php'; (new \think\App())->initialize(); \think\Cache::clear(); \think\Route::clear(); \think\Log::clear(); array_map('unlink', glob(__DIR__.'/runtime/*.php')); echo "Runtime PHP files removed.\n";
第三步:在终端执行php clear_all.php。
这个脚本比php think clear多一步:主动删除runtime/下所有.php后缀的动态生成文件(如模板编译缓存中的xxx.php),防止某些场景下think clear漏删。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











