如何通过ThinkPHP调整路由缓存设置以加快路由匹配速度?
- 内容介绍
- 文章标签
- 相关推荐
本文共计928个文字,预计阅读时间需要4分钟。
ThinkPHP的路由缓存不是依赖于命令行或环境变量控制,而是直接写在配置文件中。默认是开启的,但很多人修改了路由规则后未清理缓存,导致新路由无效。问题就出在这里。
- 路由缓存开关是布尔值,配置项叫
route_cache,必须放在config/route.php或应用级配置(如config/app.php)中,不能写在config/cache.php里 - 开发阶段建议设为
false;线上部署后务必设为true,否则每次请求都全量解析路由,性能掉得明显 - 如果用的是多应用模式,每个应用的
config/route.php都要单独配,主配置不继承
示例(config/route.php):
return [ 'route_cache' => true, ];
为什么改了路由没反应:缓存文件没删干净
路由缓存生成后会写入 runtime/cache/ 目录下的 PHP 文件(如 route.php),但 ThinkPHP 不会自动检测源路由文件修改时间,也不会自动刷新——它只认缓存文件是否存在。
本文共计928个文字,预计阅读时间需要4分钟。
ThinkPHP的路由缓存不是依赖于命令行或环境变量控制,而是直接写在配置文件中。默认是开启的,但很多人修改了路由规则后未清理缓存,导致新路由无效。问题就出在这里。
- 路由缓存开关是布尔值,配置项叫
route_cache,必须放在config/route.php或应用级配置(如config/app.php)中,不能写在config/cache.php里 - 开发阶段建议设为
false;线上部署后务必设为true,否则每次请求都全量解析路由,性能掉得明显 - 如果用的是多应用模式,每个应用的
config/route.php都要单独配,主配置不继承
示例(config/route.php):
return [ 'route_cache' => true, ];
为什么改了路由没反应:缓存文件没删干净
路由缓存生成后会写入 runtime/cache/ 目录下的 PHP 文件(如 route.php),但 ThinkPHP 不会自动检测源路由文件修改时间,也不会自动刷新——它只认缓存文件是否存在。

