ThinkPHP5.1.14版本发布——增加路由缓存,又双叒叕提速啦!

浏览:9934 发布日期:2018/05/18 分类:ThinkPHP5专区
V5.1.14版本主要对底层容器进行了一些优化改进,并增加了路由缓存功能,可以进一步提升路由性能30%以上。支持上一个版本的无缝更新!

520快到了,可以看出来ThinkPHP是有多爱你了吧^_^

如果composer 更新不了,可以尝试remove topthink/think-testing扩展后 再次更新。

更新日志

* 依赖注入的对象参数传入改进
* 改进核心类的容器实例化
* 改进日期字段的读取
* 改进验证类的`getScene`方法
* 模型的`create`方法和`save`方法支持`replace`操作
* 改进`Db`类的调用机制
* App类调整为容器类
* 改进容器默认绑定
* `Loader`类增加工厂类的实例化方法
* 增加路由变量默认规则配置参数
* 增加路由缓存设计
* 错误处理机制改进
* 增加清空路由缓存指令

官方完全开发手册内容已经同步更新。

此次更新后,应用App类的作用从原来的容器管理类升级到容器的实例,对Swoole、Workerman之类的支持更为方便,而且核心类也都纳入容器的自动实例化(利用上个版本引入的__make机制),好处是不需要操心怎么实例化了,缺点是核心类一旦在容器实例化后,就不再支持动态配置了,但都提供了对象本身的配置更改接口。

另外一个优化就是路由缓存的支持,至此为止,ThinkPHP5.1的路由三段式优化提速完成:

第一次提速在 V5.1.0 第一个版本,路由延迟解析机制,只有当路由分组匹配后才会去实际解析该分组下面的路由规则;

第二次提速是在 V5.1.7 版本,重写了路由的匹配算法,一个路由分组下的路由只需要匹配检测一次;

第三次提速是这次的 V5.1.14 版本(似乎很巧合的逢 7 提速~),增加路由缓存功能,相同的路由请求第二次可以直接跳过路由解析进行调度请求,仅在部署模式下生效,而且提供了清除路由缓存的指令。

不得不提的是,TP5.1 的路由解析机制和匹配算法、缓存机制和 Laravel 的完全不同,Laravel的路由缓存只是缓存路由规则,依然需要路由匹配检测过程,ThinkPHP的路由缓存后直接跳过了路由解析和匹配环节,不可同日而语!

ThinkPHP官方小组
2018-5-18
最佳答案
评论( 相关
后面还有条评论,点击查看>>