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

为什么这么多人喷 thinkphp?

  •  
  •   Wangxf · 2015-10-17 16:45:52 +08:00 · 11135 次点击
    这是一个创建于 3331 天前的主题,其中的信息可能已经有所发展或是发生改变。

    是因为它是国产框架吗?可能作为前端没有深入去了解或者说没有碰到 tp 的坑,我觉得 tp 很好啊,上手容易,而且文档全是中文的,各位有深入了解的能说说 tp 的坑么?跟风喷的就算了

    60 条回复    2017-02-10 14:47:25 +08:00
    phithon
        1
    phithon  
       2015-10-17 16:49:44 +08:00
    没什么坑啊,我觉得挺好的。
    zjm947373
        2
    zjm947373  
       2015-10-17 16:55:55 +08:00   ❤️ 2
    逼格不够
    zonghua
        3
    zonghua  
       2015-10-17 16:56:42 +08:00
    挺好的,除了 url 不好看。
    shenqiu2015
        4
    shenqiu2015  
       2015-10-17 16:59:37 +08:00
    冗余知识太多,很像 10 年前门户网站的首页,堆了一大堆东西
    ttph1oc
        5
    ttph1oc  
       2015-10-17 17:07:57 +08:00
    QQ 空间相册啊
    ttph1oc
        6
    ttph1oc  
       2015-10-17 17:08:31 +08:00
    回错主题了,请无视。
    wy315700
        7
    wy315700  
       2015-10-17 17:13:55 +08:00
    看不惯国产而已,

    虽然 thinkphp 坑也是蛮多的,
    m939594960
        8
    m939594960  
       2015-10-17 17:18:39 +08:00
    这么长时间遇到几个坑
    model 的验证
    用数组传参数 array('repassword','password','确认密码不正确',0,'confirm'), // 验证确认密码是否和密码一致
    非常的乱 而且有的时候回莫名其妙的不好使。 遇到过很多次


    url 的蛋疼 每次都得配置 然后才能去掉 index.php/Home/ 什么的 当然这无所谓 关键是生成 url 的 U 方法不支持按路由生成 让我很蛋疼
    上论坛上看看很多 bug 但是官方很少去解决问题。 版本就一直是真阳


    什么关联模型 很多时候会出现问题 遇到过一次问题后 后悔用这个一辈子


    别的很好啊 不过跟 laravel 比起来我真的找不到一点优点
    raincious
        9
    raincious  
       2015-10-17 17:21:28 +08:00
    在你知道一个东西有坑之前,你当然会觉得那东西自然是很好的。

    http://www.wooyun.org/corps/ThinkPHP
    raincious
        10
    raincious  
       2015-10-17 17:30:36 +08:00   ❤️ 1
    @raincious

    竟然语法错误。

    我是说,在你看到一个东西的瑕疵之前或者在你掌握了一个更好的东西之前,你会觉得你当前所使用的东西(或者知识 /经验之类)是最好的。

    但是随着时间的流逝,你积累了经验,或者开阔了眼界,回头一看你会发现那东西并不是真的好。

    ThinkPHP 就是这种东西,让你入了门,做出了一个看起来能运行的东西,所以你很喜欢。直到某一天你用了其他框架,体会到了新框架的好处,回头看了看 ThinkPHP ,可能就会觉得它又老又丑又没有规范。

    而且其实“文档是中文的”这个并不算优点。
    void1900
        11
    void1900  
       2015-10-17 17:32:39 +08:00
    很多人都喜欢说东西被喷是因为国产,这种心态我觉得很无语。

    一切被说不好的东西带上国产两个字就可以甩得一干二净了?

    为什么那么多人说小米垃圾,因为国产。为什么那么多人说苹果好,因为美产。

    你可以拿国产当借口,说因为国人思维跟不上,说国人技术不到位。

    可是不能不思进取,不做检讨啊!!!!
    pengjay
        12
    pengjay  
       2015-10-17 17:34:00 +08:00
    yii 得不得高一点点?
    Jimrussell
        13
    Jimrussell  
       2015-10-17 17:53:04 +08:00 via Android
    说小米垃圾,很多时候并不是指他家的产品,甚至不是因为无脑米粉,而是一些整天上窜下跳的官方营销人员。
    sdpfoue
        14
    sdpfoue  
       2015-10-17 18:01:10 +08:00
    用这玩意就做好把他的代码过一遍的准备。。其实也用不了多少时间
    master
        15
    master  
       2015-10-17 18:03:02 +08:00
    ThinkPHP 的主要问题是本身大而全缺设计的不优雅 并且很多东西都采用 约定 的方式来完成 然后
    因为门槛低 什么样的人都用
    因为大而全 所以就会被认为所有的事都应该是框架完成的 不要操心的 作为新手更意识不到如何去做安全

    ThinkPHP 在乌云上被捅出来的相当一部分问题都是不正确的使用 为什么被捅得不正确使用那么多呢 入门特别快呗 国人用得多呗

    框架就应该帮人做一堆的过滤吗 其他框架就都跟保姆一样 什么都做了吗 显然也并没有
    其他框架设计的更加优雅 他能让你很方便的在需要的时候引入自己的 ORM 引入自己的过滤机制 有问题就成了 这个库的锅 那个库的锅 而不是框架的锅了而已

    ThinkPHP 确实是一个很适合新手上手的框架 但他确实并不好
    mayfio
        16
    mayfio  
       2015-10-17 18:06:04 +08:00
    laravel
    muzuiget
        17
    muzuiget  
       2015-10-17 18:10:36 +08:00
    搜了下 ThinkPHP 的论坛,随手点开精华,跟到这个项目 http://tp-admin.hhailuo.com/

    > 采用全球认可的最为先进的开放理念—— OOP (面向对象)

    好想吐槽啊。
    zts1993
        18
    zts1993  
       2015-10-17 18:21:33 +08:00
    有些人是为了显示自己的逼格嘛。。。
    当然了等你用了之后,你会发现 tp bug 其实不少,然后你也会喷 tp ,不过这并不影响使用它,。。。
    cxbig
        19
    cxbig  
       2015-10-17 18:26:38 +08:00
    喷 PHP 的难道就少了?我认为有人喷才是好事,这说明用的人多。当你提出个东西没人知道,也没人在意,那才是惨。
    chengzhoukun
        20
    chengzhoukun  
       2015-10-17 18:30:04 +08:00   ❤️ 1
    [ThinkPHP, Django 这两个框架孰优孰略,忽略语言本身?] 马宏菩:你问 ThinkPHP 适不适合(零基础)速成找工作,没问题;你问 Th … http://www.zhihu.com/question/34589653/answer/59608233 (分享自知乎网)
    markmx
        21
    markmx  
       2015-10-17 18:35:08 +08:00
    其实就是大家看懂了 THINKPHP能找到问题了.
    其他框架大家看不懂,或者半懂. 大家找不到问题.

    TK 好不好.其实没什么关系呢.只要有人喷就表示有人在用,
    另外只要是PHP就行了. PHP 大法给力!
    orFish
        22
    orFish  
       2015-10-17 18:41:24 +08:00
    看了下 github 的代码。。。

    那个目录不想吐槽了。。。
    aksoft
        23
    aksoft  
       2015-10-17 19:16:11 +08:00
    没做过几个项目就别说。。。只有体会过的才知道
    mcfog
        24
    mcfog  
       2015-10-17 19:28:58 +08:00
    我特别怕错过人才,所以特别注意筛选简历的时候无视 thinkphp ,但简历上只有 thinkphp 的那部分候选人一直在挑战我的耐心。我只能说, tp 也许(在小部分场景下)不坏,但只会 tp 就太糟糕了
    barbery
        25
    barbery  
       2015-10-17 20:46:58 +08:00
    TP 纯属让你写的舒服点,但是想进阶做点事情的话,就。。。作者设计的可扩展性太差了(作为同时代的框架, CI 这里就做得不错)
    blakefan
        26
    blakefan  
       2015-10-17 21:27:32 +08:00 via Android
    小项目还行,大一点的就不行了,深有体会
    xuxu
        27
    xuxu  
       2015-10-17 22:52:16 +08:00
    没有喷过,只是觉得一看就会用的东西没有征服的欲望
    yxzblue
        28
    yxzblue  
       2015-10-17 23:04:57 +08:00
    1 年多没更新了~
    aveline
        29
    aveline  
       2015-10-17 23:23:15 +08:00   ❤️ 1
    最近在维护一个历史遗留的 ThinkPHP 项目,各种想死 ...

    呐,首先是 项目编译 这个功能 http://doc.thinkphp.cn/manual/app_compile.html

    “项目编译机制作为 ThinkPHP 独创的功能特色,从 1.0 版本就延续至今,编译缓存的基础原理是第一次运行的时候把核心需要加载的文件去掉空白和注释后合并到一个文件中”

    这个功能只能通过 APP_DEBUG 为 true 关掉 ...

    然后要吐槽的都懒得详细吐槽了:

    - 大量的短函数

    - import (虽然早年我也爱这么搞,但是大哥现在都 15 年了 ... 能不能改改)

    - URL Rewrite

    早年我国产 PHP 框架记得有个叫 FleaPHP 的,也很好用,设计思路比 ThinkPHP 不知道高到哪里去了 ... 可惜作者跑去写 iOS 游戏然后坑了
    falcon05
        30
    falcon05  
       2015-10-17 23:23:28 +08:00
    受不了它那个文档的浮夸风,读过就懂了
    500miles
        31
    500miles  
       2015-10-17 23:27:20 +08:00   ❤️ 2
    没接触过 thinkphp 的之前, 也经常在各种场合, 见到很多相关讨论, thinkphp 被喷的不要不要的

    我总是想 这些人也太偏激了吧 ?

    大概一个月前, 帮一个朋友做点东西, 是 thinkphp 框架.

    边看文档变搞, 首先迎来的是 IS_POST, IS_GET = =, 赶紧去源码看看,,

    一看不得了.. thinkphp 真是一个建立在常量上的框架.....真的是一大波常量

    接下来出场的是 早有耳闻的 M ,D 函数

    然后写一些数据验证规则,, 文档上居然示例 array('name', 1, 'invalid username', 1, 2)

    大概是这个样子, 记不很清楚了..... 尼玛 硬着头皮写了几条, 还是没能记住 到底 1 是神马 2 是啥玩意儿..

    还是去定义的地方 model 基类去看看吧, 原来是 MUST_VALIDATE, VALIDATE_AT_UPDATET / BOTH 之类的..

    你说写完整 可读性该有多好!!! 然而 文档就这么宣传 1 , 2 , 3, 4 come on zzzzzz ......

    其他的关于 框架设计, 耦合 以及 不少 蒙蔽甚至误导 程序员思维的地方. ....

    算了 ... 我特么就不装逼了 = =, over
    shenqiu2015
        32
    shenqiu2015  
       2015-10-17 23:31:44 +08:00   ❤️ 1
    八卦一下, thinkphp 是几个高中学历的程序员做出来的

    声明:我没有歧视高中学历的意思哦,我老板是初中学历
    zsx
        33
    zsx  
       2015-10-17 23:35:22 +08:00
    @aveline 这里的编译缓存的意思是说把那些分散的文件合并到一个文件来?
    KNOX
        34
    KNOX  
       2015-10-17 23:37:22 +08:00
    看你这 ID …峰哥?
    xycoffee
        35
    xycoffee  
       2015-10-18 00:05:43 +08:00
    刚刚点开 CNZZ 看了一下,来自 V2EX 的的访问倒挺多的。就觉得奇怪了。就来看了下。我也来说一句,#17 楼 @muzuiget 提到的这个 http://tp-admin.hhailuo.com/ 这个项目的作者。对于你说的这个 OOP 思想嘛,我觉得现在的框架都是 OOP 吧,我在这里说是 OOP 思想应该也没有什么大错吧。另外我这个写个介绍好像也没有什么错吧。不知道哪里得罪你了?你想要吐槽什么呢?至于系统嘛,犹豫本人水平有限,做的确实有点粗糙,但是应该还是能为一些人提供一些方便的。这个只能说“大神”们呐,你们怀揣这惊世骇俗的本事,为何就不肯为我们这等屌丝造点福利啊。 TP BUG 很多大神们也没见你们写一个出来方便世人呐。收起你们的喷子心态吧,我怕“脏”了你们的嘴啊。
    kslr
        36
    kslr  
       2015-10-18 00:25:34 +08:00 via Android
    @xycoffee 如见人
    loveminds
        37
    loveminds  
       2015-10-18 00:28:23 +08:00
    @m939594960 和 symfony 也找不出多少
    x86
        38
    x86  
       2015-10-18 00:35:05 +08:00
    配置好的路由用 U 方法生成个看看,简直无情
    void1900
        39
    void1900  
       2015-10-18 09:36:52 +08:00
    @aveline 老廖的 QeePHP 我也用过好久,现在转 laravel 了
    blue7wings
        40
    blue7wings  
       2015-10-18 10:49:51 +08:00
    "可能作为前端没有深入去了解或者说没有碰到 tp 的坑" 你去深入了解下,你就知道了。。。
    pljhonglu
        41
    pljhonglu  
       2015-10-18 10:54:37 +08:00
    我想应该是拉低了行业门槛,导致一大批非专业人员在用 thinkphp 做开发的原因吧~
    但是不可否认,『别人』的设计确实比 thinkphp 要好啊~
    free9fw
        42
    free9fw  
       2015-10-18 10:55:50 +08:00
    坑还蛮多的,比如 model 连贯调用多个 params ,会直接忽略错误的 param,坑死爹
    wingyiu
        43
    wingyiu  
       2015-10-18 10:56:07 +08:00
    用 thinkphp 大部分都是菜逼,想当年拿到一个什么小猪微信营销系统,那代码叫一个惨不忍睹
    Laobai
        44
    Laobai  
       2015-10-18 11:09:03 +08:00
    走眼看成了 thinkpad 。。。
    Chrics
        45
    Chrics  
       2015-10-18 11:24:33 +08:00
    软工架构比 laravel 差了一个数量级,而且文档写的很混乱,当时看了一遍居然他丫的没看懂...
    Chrics
        46
    Chrics  
       2015-10-18 11:33:06 +08:00
    @shenqiu2015 2333333
    xz
        47
    xz  
       2015-10-18 11:35:37 +08:00 via iPhone
    看见“看不惯”三个字我就想😂😂😂😂
    hahasong
        48
    hahasong  
       2015-10-18 12:10:13 +08:00
    thinkphp 的 api 设计和文档非常混乱,翔一样的。你再去看看 ci 和 cakephp 的文档就会明白了 ,简洁优雅太多了
    kslr
        49
    kslr  
       2015-10-18 13:08:10 +08:00
    @wingyiu 我也是啊,看到的时候要哭了
    dai269619118
        50
    dai269619118  
       2015-10-18 13:12:38 +08:00
    会的人多
    indepead
        51
    indepead  
       2015-10-18 13:18:41 +08:00 via Android
    @cxbig 赞同,批评者让东西更完善,这一点亘古不变。
    wwek
        52
    wwek  
       2015-10-18 13:19:56 +08:00
    现在有了更好的选择 Laravel
    目前我们项目还有 tp2.2(改了一些框架代码,由于迁移到 tp3.1 太费事了,工作量太大,继续保持在 2.2)
    还有 3.2 的 tp,3.2 和 3.1 差距很大,主要是 namespace 这一块
    TP 的文档算是比较小白的文档了,当然也有里面其实某些东西就说的不是很详细,至少 ORM 某些写法里面没有交代.

    TP 好不好?
    TP 就是用来干活的,站在交付这块还行,站在 php 框架领域就太 low 了.


    新项目我劝各位还是好好搞 Laravel 等.

    至于还在用 TP 的,大多数都是在维护项目嘛, 除非精力旺盛重构到 Laravel 去我估计是没时间实现了
    realpg
        53
    realpg  
       2015-10-18 16:17:00 +08:00
    @aveline

    FleaPHP ……印象深刻……不过不是程序……是官方 QQ 群每天固定过了 17 点下班就开始福利泛滥……
    KasonPasser
        54
    KasonPasser  
       2015-10-18 17:55:25 +08:00   ❤️ 1
    觉得它好用只是你没有碰上更好用的。
    打个比喻吧:
    就像你刚学砍树时,用斧子觉得很顺手,如果你不用锯,你就会觉得斧子是最好的砍树工具,当你有机会用上锯并且用正确之后,你就会发现你之前的世界观都改变了。这个时候再叫你用斧子去砍树时,估计你也是不愿意了。(原来还是有更好用的)
    yuriko
        55
    yuriko  
       2015-10-19 08:32:33 +08:00
    我当初选择使用 TP 的主要原因就是中文文档和社区……
    做做小项目简单易上手

    之后我就不写 PHP 了
    fkj
        56
    fkj  
       2015-10-19 08:59:33 +08:00 via Android
    熔岩大法好
    assassinpig
        57
    assassinpig  
       2015-10-19 10:09:38 +08:00
    没喷过 但是用过之后发现只能是凑活 而且也只能是凑活了
    codingpp
        58
    codingpp  
       2015-10-19 13:53:08 +08:00
    适合新手?表毁新手
    Jeremy1992
        59
    Jeremy1992  
       2015-10-19 17:10:29 +08:00
    @yuriko 后来去干嘛啦
    hetal
        60
    hetal  
       2017-02-10 14:47:25 +08:00
    可以试试 slightphp
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2788 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 05:46 · PVG 13:46 · LAX 21:46 · JFK 00:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.