ThinkPHP6.0快速開發手冊(案例版) / 路由缓存提升效率

路由缓存提升效率

因为添加了一层映射, 所以路由会有效率损失, 将路由缓存是个好主意


路由缓存

因为添加了一层映射, 所以路由会有效率损失, 将路由缓存是个好主意

在定义了大量的路由规则之后,开启该缓存可以明显提升路由解析性能,而且路由规则越多越明显(仅在部署模式下有效)。

在路由配置文件中设置开启:

'route_check_cache'	=>	true,

开启后,会自动对每次的路由请求的调度进行缓存,第二次如果是相同的请求则无需再次经过路由解析,而是直接进行请求调度。

默认情况下的路由缓存标识是当前的请求类型和包含域名的BaseUrl,如果你的路由参数检测比较复杂,例如包含了ajax/pjax检测的话,需要自定义路由缓存的标识,通过下面的方式:

'route_check_cache_key'	=>	function($request) {
	return md5($request->url(true) . ':' . $request->method() . ':' . ($request->isAjax() ? 1 : 0));
},

路由缓存支持所有的请求类型。

如果你更改了某个路由规则的路由地址,则需要清理路由缓存才能生效,可以使用下面的指令清理路由缓存。

>php think clear --route