精准清除ThinkPHP路由缓存应执行php think clear:route命令,仅删除runtime/cache/route.php(TP8.0)或runtime/route.php(TP5/6),TP8.0在APP_DEBUG=true时该命令静默无效,多应用需逐个目录执行。

ThinkPHP项目中路由不生效、新注解路由匹配失败、访问接口返回404,但确认代码无误时,大概率是路由缓存残留导致的——而你只想精准删掉它,不能连带清空模板、日志或配置缓存。
用命令行精准清除路由缓存
执行 php think clear:route。该命令专为路由缓存设计,只删除 runtime/cache/route.php(TP8.0)或 runtime/route.php(TP5/6),不碰 view/、log/、cache/ 下其他文件。
TP8.0 用户注意:【APP_DEBUG=true 时此命令无效】,框架会跳过所有路由缓存加载逻辑,此时执行 clear:route 不报错也不删文件,纯属静默忽略。
多应用项目需逐个清理:进入 app/admin/ 目录后运行 php think clear:route,再进 app/api/ 同样操作;不支持一键遍历所有子应用。
立即学习“PHP免费学习笔记(深入)”;
手动删除路由缓存文件
方法一:直接删文件
Linux/macOS 执行:rm -f runtime/cache/route.php(TP8.0)或 rm -f runtime/route.php(TP5/6)。
开箱即用的技能链路由引擎。13 条预定义链覆盖搜索、开发、审查、MLOps、法律、创意等场景,三层路由架构(触发词→SAD反馈→DAG编排),recall@10=96.97%。配置驱动(chains.yaml),零代码扩展。pip install skill-weave-chains 一键安装。
方法二:检查是否存在再删(防误删)
先运行 ls -l runtime/cache/route.php 2>/dev/null || echo "not found",输出路径才执行删除;这一步能避免在 route.php 本就不存在时盲目 rm 导致其他文件被波及(比如手抖输成 runtime/cache/*)。
Windows 用户请用资源管理器定位到 runtime/cache/ 或 runtime/ 目录,手动删除 route.php 文件——别用 del *.*,极易误删。
代码中动态清除路由缓存
第一步:确认当前不是调试模式 → 检查 \think\App::debug() 返回 false,否则后续操作无意义。
第二步:获取真实路由缓存路径 → 使用 \think\facade\Env::get('runtime_path') . 'cache/route.php'(TP8.0)或 \think\facade\Env::get('runtime_path') . 'route.php'(TP5/6)。
第三步:安全删除 → 调用 \think\helper\Dir::delete($path)(TP6+);TP5 需改用原生 unlink($path),但【必须先用 file_exists() 校验路径】,防止 unlink 报 Warning 并中断后续流程。


















