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

如何 [客观] 的评价 thinkphp5 这个框架?

  •  
  •   wyan453351466 · 2018-04-13 10:26:53 +08:00 · 8734 次点击
    这是一个创建于 2415 天前的主题,其中的信息可能已经有所发展或是发生改变。

    首先我承认 tp3 是一个垃圾的 tp 框架。

    现在 tp5 已经出了很久了,想听听大家如何评价这个框架。

    感觉很多人在黑 tp,但是黑的都是一些无关痛痒的点。

    好像黑 tp 已经成了一种政治正确,就像其他人黑 php 一样。

    tp5 相比较 tp3 已经是完全截然不同的两个框架了。求客观地评价。

    42 条回复    2018-04-20 11:12:40 +08:00
    yuhr123
        1
    yuhr123  
       2018-04-13 11:05:39 +08:00   ❤️ 9
    thinkphp 是国产 PHP 框架里最受认可,也是国产 php 框架中使用人数最多的。它轻量易用功能强大,有完善的中文文档支持,可以在很大程度上提升开发效率。因此,我选 Laravel。
    tegic
        2
    tegic  
       2018-04-13 11:16:12 +08:00
    存在即合理。
    murmur
        3
    murmur  
       2018-04-13 11:17:29 +08:00
    中小公司用起来爽
    细看的话很多设计有些多余了
    当然这跟 php 的开发习惯有关
    php 一般是整个框架都自己搭
    male110
        4
    male110  
       2018-04-13 13:34:28 +08:00
    能用,快速上手,快速开发就是好的
    simapple
        5
    simapple  
       2018-04-13 13:39:25 +08:00
    够用 很好
    sagaxu
        6
    sagaxu  
       2018-04-13 13:50:07 +08:00 via Android
    tp 本身倒没大问题,问题是用户往往太 low 太坑,所以绕着走总没错
    liyu001989
        7
    liyu001989  
       2018-04-13 14:07:35 +08:00
    因此,我选 Laravel。
    gouchaoer
        8
    gouchaoer  
       2018-04-13 14:15:51 +08:00
    @ slince
    m939594960
        9
    m939594960  
       2018-04-13 14:16:01 +08:00   ❤️ 2
    黑点一堆...
    1.框架使用基本照抄 laravel,那我为啥不用 laravel 呢? 那么多第三方扩展.
    2.框架本身代码太乱,乱七八糟一个 if 套一个 if 的, 记得以前看他源代码 判断是否 json 返回的时候竟然用的正则取得前几个字符
    3.框架小版本更新也一堆不兼容的升级,每次升级都不能无痛
    4.框架自身对安全的处理很有问题,前一段时间还爆出漏洞,而且默认防 XSS 也不开, 基本上 TP 论坛例子区看看,找个进去就是一堆 XSS 弹窗弹得作者自闭
    5.框架生态太差,论坛一堆伸手党,扩展质量参差不齐.
    6.github 上一堆 2017 年的 ISSUE/PR 还没有修完
    7.很多功能写(抄 laravel 抄)的并不是很全使用的时候还是有些麻烦


    这是我没用过 TP5,只给 TP 写了一个扩展的情况下发现的问题.

    我只用过. TP3.2 你让我说这个框架的问题 我能说上三天三夜..



    这时候肯定会有人说,你这么厉害你倒是自己写一个框架啊.我只能呵呵
    just1
        10
    just1  
       2018-04-13 14:16:47 +08:00 via Android
    不存在客观的评价,结贴。
    m939594960
        11
    m939594960  
       2018-04-13 14:17:45 +08:00
    真的 现在 laravel-china 翻译的 laravel 手册 翻译的那么好, 想用 TP5 的真可以直接一步到位上 laravel.
    mokeyjay
        12
    mokeyjay  
       2018-04-13 14:22:00 +08:00
    @m939594960 #11 laravel 的手册对于新手而言各种不清晰不明确看不懂吧
    wyan453351466
        13
    wyan453351466  
    OP
       2018-04-13 14:39:12 +08:00
    @m939594960 你没用过 TP5 在这儿说的是什么问题呢。XSS 这个是 TP3.2 的问题吧?
    升级不无痛,laravel 也一样啊。laravel 到 5 才出了 lts 版本。
    wyan453351466
        14
    wyan453351466  
    OP
       2018-04-13 14:58:57 +08:00
    @m939594960 黑升级无痛这个。我也是无力吐槽了。laravel 的升级也经常性不是无痛的啊。痛点甚至比 tp 还大。

    ![QQ20180413-145612.png]( https://i.loli.net/2018/04/13/5ad0549503480.png)

    http://laravelacademy.org/post/8644.html
    wyan453351466
        15
    wyan453351466  
    OP
       2018-04-13 14:59:46 +08:00
    @wyan453351466 补充下上面的链接,markdown 没显示出来。laravel 最新版本都是无法无痛升级的。
    my101du
        16
    my101du  
       2018-04-13 15:09:05 +08:00
    写 Laravel 项目,得强迫自己记到脑子里很多东西(系统配置 /路由与插件配置什么的),有种“我要干什么?先想一下,找一找轮子,再动手不妨”,过段时间回来维护,差不多还能快速捡起来。

    写 TP 的时候,不用记忆什么,开着官方文档,边写边查,哗啦啦干完了。过段时间回来发现不记得当时是个什么情况。

    当然了,这应该是我自己比较菜的原因——缺乏大项目的规划与掌控能力。
    抛弃 TP 的原因,主要是社区积累的内容质量不高,遇到问题查来查去咀嚼得都要吐了,还没发现有个人能出来清晰描述如何解决这个问题。
    m939594960
        17
    m939594960  
       2018-04-13 15:11:27 +08:00
    @wyan453351466 TP3.2 的时候没有 xss 的问题,默认就是过滤的,然而 TP5 不知道为啥默认把过滤干掉了.
    m939594960
        18
    m939594960  
       2018-04-13 15:17:14 +08:00
    @wyan453351466 哈哈可能我觉得的无痛和你认为的无痛不一样吧,laravel 的手册会列出来要改啥,
    然后 TP 的手册就列出了一堆基本的东西,然而你去 github 上看看 commit 你就知道 TP5 这东西压根没办法升级



    就举个例子

    https://github.com/top-think/framework/compare/v5.1.8...5.1#diff-cd79b692c5c728b76c411de6d536612fL2089

    这代码你敢升级么???????
    m939594960
        19
    m939594960  
       2018-04-13 15:24:15 +08:00
    @wyan453351466
    xss 过滤部分 https://github.com/top-think/think/blob/5.1/config/app.php#L44 默认配置为空,是不过滤的

    早期的时候确定过这是没过滤的,不知道现在咋样? 是不是在模板部分过滤了
    phpcxy
        20
    phpcxy  
       2018-04-13 15:24:39 +08:00 via Android
    tp5 参考了很多 laravel。刚开始出来的时候我用了下,发现一个小版本更新居然是不兼容前面的,后来还是用回 laravel
    wyan453351466
        21
    wyan453351466  
    OP
       2018-04-13 15:31:38 +08:00
    @m939594960 tp 手册也列出来了要改查了啊。你看 commit 有什么用😓

    如果手册都不说清楚要改啥,那升级谁会升你告诉我。

    XSS 只是在输入的时候默认没开启。在输出的时候,默认会自动 XSS 过滤的。效果是一样的。

    具体看连接: https://github.com/top-think/framework/blob/9f9ec649c181b36754d1e49abf7d868bf09e80ad/library/think/Template.php#L60

    laravel 每次升级也是大改。都不用看 commit,看手册中需要改的地方就知道了。

    而且以上两个我认为都不是关键问题啊!
    wyan453351466
        22
    wyan453351466  
    OP
       2018-04-13 15:34:27 +08:00   ❤️ 1
    @phpcxy laravel 一样不兼容。怀疑你们是 laravel 假粉。

    以下是 lararvel 最近两个小版本的升级指南。5.4 到 5.5 升级时间要 1 个小时。而 4 版本到 5 版本,是直接没办法升级。

    laravelacademy.org/post/8644.html
    laravelacademy.org/post/7613.html
    m939594960
        23
    m939594960  
       2018-04-13 15:43:33 +08:00
    @wyan453351466
    请看 升级指导
    https://www.kancloud.cn/manual/thinkphp5_1/354155 并没有讲这个地方会莫名其妙的抛一个严重的异常.
    也就是升级之后必会报 500 错误???


    请看#20
    就很能说明这个东西更新版本多么随意




    关于 XSS 的问题,我当然知道能在模板做过滤,但是请你看看他早期版本(5.0),没有在任何地方进行过滤,
    https://github.com/top-think/framework/blob/760b1d971d4d9df85e0990617d58f57cd14bedfa/library/think/Template.php#L51

    请你不要骗自己了
    m939594960
        24
    m939594960  
       2018-04-13 15:44:36 +08:00
    @wyan453351466 只要能完美的升级,就算升级时间写 1 天,我也一样能升级,但是你得保证我升级之后可以正常使用对吧
    m939594960
        25
    m939594960  
       2018-04-13 15:45:10 +08:00
    @wyan453351466 你说 4 没办法升级到 5,那么我问你,.TP3.2 能升级到 TP5 么????
    wyan453351466
        26
    wyan453351466  
    OP
       2018-04-13 15:49:14 +08:00
    @m939594960 对啊。4 没办法升级到 5.。所以你们为什么要吐槽 TP 的升级呢,这不是一样的?
    m939594960
        27
    m939594960  
       2018-04-13 15:50:35 +08:00
    @wyan453351466 我说的是小版本升级,大版本大家都升级不了不是很正常的么?
    wyan453351466
        28
    wyan453351466  
    OP
       2018-04-13 15:52:16 +08:00   ❤️ 1
    @m939594960 500 错误那个,具体是哪个版本?而且这个问题如果是大家都有,那必然会在文档中说明,如果只有你一个人出现了 500。那是不是你自己本人的问题呢?
    wyan453351466
        30
    wyan453351466  
    OP
       2018-04-13 15:57:47 +08:00
    @m939594960 抱歉没看懂你什么意思。500 错误呢?在哪里
    m939594960
        31
    m939594960  
       2018-04-13 15:59:04 +08:00
    @wyan453351466 其实说这么多没啥用,主要两点
    1.开发框架人的思想 /技术实力
    2.周边社区生态是否接受伸手党 /啥都不懂一通乱写的 还是 只接受有一定水平的人.

    综上所属我选择 laravel
    m939594960
        32
    m939594960  
       2018-04-13 16:02:05 +08:00
    @wyan453351466 这是 5.1.8 对比 5.1 其中一段代码,
    老版本是 catch 到 \Exception 直接 return
    新版本 throw new Exception('closure not support cache(true)');
    logOo
        33
    logOo  
       2018-04-13 16:02:24 +08:00 via Android
    呃,我用 spring,对不起走错片场了。
    wyan453351466
        34
    wyan453351466  
    OP
       2018-04-13 16:06:48 +08:00
    @m939594960 如果是 throw new Exception,说明这是一个致命问题。那当然要 throw new Exception。
    Kongtou
        35
    Kongtou  
       2018-04-13 17:06:56 +08:00 via Android
    php 已凉
    ben1024
        36
    ben1024  
       2018-04-13 17:23:03 +08:00
    1.抄 laravel, yii 抄一半
    2.社区差
    3.生态差
    4.bug 修复慢,自身兼容问题
    5.限制少
    MrLin
        37
    MrLin  
       2018-04-13 17:38:54 +08:00 via Android
    日常黑 tp,有什么意思。存在就有他的意义
    hoyixi
        38
    hoyixi  
       2018-04-13 23:43:01 +08:00
    Yii2 小僧默默地看着你们...
    和编程语言一样,结合具体应用场景,适合的才是最好的,A 的痛点放到 B 那里可能是爽点~
    topthink
        39
    topthink  
       2018-04-14 08:16:30 +08:00   ❤️ 2
    感谢对 TP5 的关注(及认可),简单谈下自己作为 TP 创始人一路过来的感受!

    在 V2EX 就不要抱有对 TP 客观评价的奢望~但是,那又能说明什么呢?无论如何我们走过了十多年,也陪伴了开发者十多年,就算经历了漏洞的洗礼,我们依然在健在,而且生命力堪比小强(你以为 Laravel 就能把 TP 打死么?国际上优秀的框架多了,按照大家黑 TP 的逻辑 TP 早就玩完了恐怕),因为什么?存在即是价值,我思故我在,只要还在努力进步,我们就会有用户和价值。

    我们做框架不是为了证明我们有多优秀(恰恰相反,我们一直在学习和改进框架思想及代码),我们的用户也不会觉得自己有多优越(简单好用才是硬道理 框架是生产力工具又不是拿去撩妹的跑车),不要说 Laravel 有多好了,我也能举出一堆 TP 的优势,任何一个框架都不是完美的,哪个框架没有坑对于新手而言,微软、谷歌还是腾讯、阿里的产品没有坑?没有漏洞?更何况我们只是一个社区的免费开源产品,人家 Laravel 好那是因为人家团队好、氛围好,有人积极参与贡献,国内不日常黑、不贡献也就算了,对于开源产品只有抱怨有什么积极意义?如果能够积极参与,反馈和建议、甚至是简单的 PR,对这个生态都是添砖加瓦,你没有亲自去开发和运营一个开源产品并且坚持十年如一日就不要随便去指责和批评,人无完人框架也是,至少有些人在努力做到更好,想想自己又做了什么,或者又因为什么而自我优越呢。
    azoon
        40
    azoon  
       2018-04-14 09:29:42 +08:00   ❤️ 1
    非常容易上手,我第一个用的框架就是 ThinkPHP。我用 ThinkPHP 做了一个自己的企业网站管理后台,目前为止做的网站至少有 500 个了,不过大部分都是普通的企业网站。从来没有存在被黑的情况。

    目前有两个是数据量大约 5000W 的网站,一点问题都没有。

    很多人为了黑而黑,而自己根本用都没用过,只是看到国产的东西就想喷罢了。
    m939594960
        41
    m939594960  
       2018-04-14 15:10:50 +08:00
    @azoon 请把网址发给我
    dcsite
        42
    dcsite  
       2018-04-20 11:12:40 +08:00
    #39 @topthink
    TP 的问题在于社区运营。因为用户众多,初学者众多,导致整个社区给人感觉是很低端。
    官网很多年没改版过了吧?形象包装这一块,你们太欠缺了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5687 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 06:11 · PVG 14:11 · LAX 22:11 · JFK 01:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.