ThinkPHPV5.1.7 版本的一些新特性介绍——让你明白路由是如何提速的

2018-03-30 22:05:58 +08:00
 topthink

最新版本( V5.1.7 )的主要新特性主要包含:

本文主要介绍以上三个特性,详细内容参考: https://www.kancloud.cn/thinkphp/thinkphp5_1_new_feature/content

3230 次点击
所在节点    推广
11 条回复
arsom
2018-03-30 22:35:34 +08:00
支持
lddsb
2018-03-31 19:14:44 +08:00
可以的,中间件都有了,很棒!
xuyl
2018-04-01 13:11:13 +08:00
照抄 laravel ?
topthink
2018-04-01 15:00:16 +08:00
@xuyl 难道中间件只有 laravel 有么? laravel 的路由性能有这么高么?
jfcherng
2018-04-02 08:08:35 +08:00
Symfony 4.1 的新路由實現號稱速度是 FastRoute 的兩倍,粗略看內文應該是基於 FastRoute 的再改進版本。

https://medium.com/@nicolas.grekas/making-symfonys-router-77-7x-faster-1-2-958e3754f0e1
https://medium.com/@nicolas.grekas/making-symfony-router-lightning-fast-2-2-19281dcd245b

或許也可以研究下。
xuyl
2018-04-02 10:36:17 +08:00
@topthink 粗略看了下文档,think 命令行和 artisan 几乎一样,这没得跑吧。
FrankAdler
2018-04-02 13:57:34 +08:00
中间件跟 laravel 很像了, 包括命名啥的, 但是 laravel 可以多个中间件, 这个实现起来有点复杂, 所谓的切片... 不过其实不到 50 行代码就能实现了
路由的分组延迟构想挺好, 打算借鉴下用到自己的框架
topthink
2018-04-02 15:09:44 +08:00
@FrankAdler 中间件本来就是支持多个的 按顺序执行 没什么复杂的 laravel 就喜欢把简单问题复杂化而已
topthink
2018-04-02 18:31:49 +08:00
@xuyl 这个我只能感到很无语~ 何况 laravel 也都是基于 Symfony 组件,相同的指令执行又有什么
FrankAdler
2018-04-02 18:58:56 +08:00
@topthink 我看到"中间件方法参数只能有一个,但可以支持任意类型,在 handle 方法的第三个参数传入即可。" 这句话 还以为只能一个... 是我不仔细了,
"laravel 喜欢把简单问题复杂化" 是因为用了很多其他语言的模式和思想导致的, 不过给一种思想或者模式定义下行为, 然后起个名字, 我觉得还是很有用的, 虽然增加了门槛, 比如中间件这个东西, 最初在 laravel 就是个钩子, 后来叫过滤器, 再后来叫中间件, 路由的概念也是这样演化出来的
topthink
2018-04-03 13:52:21 +08:00
@FrankAdler ThinkPHP 一开始的版本就有钩子和行为 中间件的引入不过是和主流规范接轨,但本质上没什么区别,都是 AOP

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/442983

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX