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

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

  •  
  •   topthink · 2018-03-30 22:05:58 +08:00 · 3338 次点击
    这是一个创建于 2463 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    11 条回复    2018-04-03 13:52:21 +08:00
    arsom
        1
    arsom  
       2018-03-30 22:35:34 +08:00
    支持
    lddsb
        2
    lddsb  
       2018-03-31 19:14:44 +08:00
    可以的,中间件都有了,很棒!
    xuyl
        3
    xuyl  
       2018-04-01 13:11:13 +08:00
    照抄 laravel ?
    topthink
        4
    topthink  
    OP
       2018-04-01 15:00:16 +08:00
    @xuyl 难道中间件只有 laravel 有么? laravel 的路由性能有这么高么?
    jfcherng
        5
    jfcherng  
       2018-04-02 08:08:35 +08:00   ❤️ 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

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