首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  PHP

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

  •  
  •   topthink · 114 天前 · 1410 次点击
    这是一个创建于 114 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    • 引入中间件支持
    • 路由改进和提速
    • 查询安全性改进

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

    11 回复  |  直到 2018-04-03 13:52:21 +08:00
        1
    arsom   114 天前
    支持
        2
    lddsb   113 天前
    可以的,中间件都有了,很棒!
        3
    xuyl   113 天前
    照抄 laravel ?
        4
    topthink   112 天前
    @xuyl 难道中间件只有 laravel 有么? laravel 的路由性能有这么高么?
        5
    jfcherng   112 天前   ♥ 1
    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

    或許也可以研究下。
        6
    xuyl   112 天前
    @topthink 粗略看了下文档,think 命令行和 artisan 几乎一样,这没得跑吧。
        7
    FrankAdler   112 天前
    中间件跟 laravel 很像了, 包括命名啥的, 但是 laravel 可以多个中间件, 这个实现起来有点复杂, 所谓的切片... 不过其实不到 50 行代码就能实现了
    路由的分组延迟构想挺好, 打算借鉴下用到自己的框架
        8
    topthink   111 天前
    @FrankAdler 中间件本来就是支持多个的 按顺序执行 没什么复杂的 laravel 就喜欢把简单问题复杂化而已
        9
    topthink   111 天前
    @xuyl 这个我只能感到很无语~ 何况 laravel 也都是基于 Symfony 组件,相同的指令执行又有什么
        10
    FrankAdler   111 天前
    @topthink 我看到"中间件方法参数只能有一个,但可以支持任意类型,在 handle 方法的第三个参数传入即可。" 这句话 还以为只能一个... 是我不仔细了,
    "laravel 喜欢把简单问题复杂化" 是因为用了很多其他语言的模式和思想导致的, 不过给一种思想或者模式定义下行为, 然后起个名字, 我觉得还是很有用的, 虽然增加了门槛, 比如中间件这个东西, 最初在 laravel 就是个钩子, 后来叫过滤器, 再后来叫中间件, 路由的概念也是这样演化出来的
        11
    topthink   111 天前
    @FrankAdler ThinkPHP 一开始的版本就有钩子和行为 中间件的引入不过是和主流规范接轨,但本质上没什么区别,都是 AOP
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   实用小工具   ·   3706 人在线   最高记录 3762   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 16ms · UTC 06:17 · PVG 14:17 · LAX 23:17 · JFK 02:17
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1