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

大家有没有觉得, thinkPHP 是世界上最臃肿难用的框架?

  •  
  •   kisshere · 2016-10-03 09:21:59 +08:00 · 16059 次点击
    这是一个创建于 2978 天前的主题,其中的信息可能已经有所发展或是发生改变。
    新版本的 thinkPHP 不知道,老版本的 TP 框架, ABCDEFG 的函数命名方法,各种臃肿的配置,目前找了半天哪里开 debug 都不知道,因为他把本来最简单的 php 弄成一个庞大的积木工程,而你对这个积木工程的内部不了解,哪里出错,哪里优化都不清楚, php 框架的宗旨应该是一种清晰的脉络,一有异常马上知道哪个环节出错了、哪个环节该优化了,顺藤摸瓜找到症结所在,达到整个服务器如庖丁解牛般了然于心。因此很多人都说自己写的框架才是世界上最好的框架,然而 TP 完全与这一理念背道而驰, php 本来就是一种框架式、模板式的语言,简单易用的 php 到 TP 这儿却变成各种新概念,异常臃肿。个人觉得一种最简单的 php 框架就这么几个文件:
    1.index.php 入口文件,包含 functions.php,config.php,baseController,MySQL.class.php
    2.各种 Controller 继承 baseController ,当然你要加一个 baseModel.php 也可以,项目足够小, MVC 可以直接改成 MC 模式
    一个框架就完成了,需要 TP 这么画蛇添足 ban 复杂吗?
    63 条回复    2017-02-10 14:50:14 +08:00
    forwind
        1
    forwind  
       2016-10-03 09:28:01 +08:00
    zhujinliang
        2
    zhujinliang  
       2016-10-03 09:31:04 +08:00 via iPhone
    同意楼上的观点
    int64ago
        3
    int64ago  
       2016-10-03 09:36:41 +08:00 via Android
    tabris17
        4
    tabris17  
       2016-10-03 09:37:21 +08:00
    没错
    David6516
        5
    David6516  
       2016-10-03 09:42:03 +08:00
    yii 框架你值得拥有~
    haibocui
        6
    haibocui  
       2016-10-03 09:47:19 +08:00 via Android
    精辟
    bramblex
        7
    bramblex  
       2016-10-03 09:48:01 +08:00 via Android
    我觉得楼上都已经懒得吐槽楼主了
    testisitok
        8
    testisitok  
       2016-10-03 09:56:04 +08:00 via Android
    正确(手动滑稽)
    bugmenein
        9
    bugmenein  
       2016-10-03 10:00:22 +08:00   ❤️ 11
    今天终于把 phpstorm 这个祸害给卸载了,呼~松口气~

    kisshere · 27 天前
    springz
        10
    springz  
       2016-10-03 10:14:49 +08:00
    精辟,好吧,黑 thinkPHP 是政治正确,这个我不说什么。但是剩下的,我猜题主没用使用过 php 5.3 以后的版本,闭包,命名空间, interface 等等不了解。更没有使用过 laravel , symfony , yii 等。我刚接触 php 的时候也有这种想法。当成脚本去写。但是这是一个工程,不是一个玩具。
    mitoop
        11
    mitoop  
       2016-10-03 10:16:11 +08:00
    你这喷法又喷出了新高度,新姿势。按照你的逻辑, Laravel 和 ROR 可以死了。
    springz
        12
    springz  
       2016-10-03 10:16:49 +08:00
    大家都懒的吐槽,当个坏银。
    springz
        13
    springz  
       2016-10-03 10:19:47 +08:00
    再猜一下,楼主应该只会 php 或者 js 一类的,学学 java 之类的吧,借鉴一些思想也是好的。
    Smilecc
        14
    Smilecc  
       2016-10-03 10:20:35 +08:00
    我猜楼主可能是接了哪个前同事的坑 不爽了来吐槽一发
    cnqncom
        15
    cnqncom  
       2016-10-03 10:22:32 +08:00
    存在就是合理的,为什么 TP 从 1 到 5 的升级?如果没有人去使用,我想官方也不会去升级。
    开发为了什么?
    搞到最后还是开发出来的项目要去赚钱。 TP 上手很快,文档都是中文的,所以它迎合了很多项目的需求。做出来的项目功能未必不如 YII 等国外框架
    luziafy
        16
    luziafy  
       2016-10-03 10:23:01 +08:00
    半天找不到 debug 开关,转行吧...

    而且真没发现 TP 有新概念...

    关于臃肿...
    你完整做过项目吗?

    一般框架会需要一个 Route.php
    后来发现要处理异常,于是就有了 Exception.php
    后来觉得没有自动加载真是太傻了,新建了个 Loader.php
    php 项目怎么可能没有用户输入?于是 Response.php 出现了
    用户输入需要验证,又加了个 Validate.php
    调试中发现没有日志不行, Log.php 正在路上
    ...

    回头一看,这么臃肿的框架,和 TP 有什么区别,摔
    Smilecc
        17
    Smilecc  
       2016-10-03 10:23:33 +08:00
    虽然不说 TP 有好或者多烂,但工具的种类很多,有轻量级的,有重量级的。
    每一种技术,发明这项技术的人都有他的初衷,你不认同只是你俩想法不能契合,一种技术有啥用,不想用就用别的呗。
    springz
        18
    springz  
       2016-10-03 10:23:49 +08:00
    Smilecc
        19
    Smilecc  
       2016-10-03 10:24:39 +08:00
    @Smilecc
    - 一种技术有啥用
    + 喷一种技术有啥用
    cnqncom
        20
    cnqncom  
       2016-10-03 10:29:47 +08:00
    当初用 DZ 做论坛的时候,很多搞技术的圈内人很看不起 DZ ;不过我更看重的是安装简单,插件很多,维护方便,有什么问题就去官方论坛发帖。
    后来,我把这个基于 DZ 的地方网站运营的很不错,也从上海的公司辞职回家全职搞。 2014 年又开始做微信公众号,萌宝投票吸了大量的粉丝,搞的有声有色。
    我也是做技术出身的,搞过 moodlen\drupal 等等,后来感觉还是 dedecms 、 discuz 、 thinkphp 来的快。
    如今当初那些看不惯 DZ 的同事,每天晚上还是在上海加班一个一个项目暗无天日的做着。聊天的时候他们现在蛮羡慕我现在自由的生活,不过估计他们在心底还是看不惯 DZ 等这些国产程序。有点孔乙己的脾气......
    jessynt
        21
    jessynt  
       2016-10-03 10:33:11 +08:00   ❤️ 12
    kaneg
        22
    kaneg  
       2016-10-03 10:51:21 +08:00 via iPhone
    这个项目把做产品当成做玩具,每次升级都是过河拆桥,几乎不考虑老版本的兼容性。
    iyaozhen
        23
    iyaozhen  
       2016-10-03 10:51:59 +08:00 via Android
    各种 Controller 继承 baseController ,当然你要加一个 baseModel.php 也可以,项目足够小, MVC 可以直接改成 MC 模式。
    ——没明白这里有什么不好的地方?
    kisshere
        24
    kisshere  
    OP
       2016-10-03 10:53:22 +08:00
    @luziafy 找了半天 debug 没找到就转行。。。现在我开发一个框架,我要你马上给我说出我自定义的一个函数具体什么含义该怎么使用,找不到就鄙视你,你觉得合理么
    bramblex
        25
    bramblex  
       2016-10-03 10:59:24 +08:00 via Android
    @kisshere 造个框架多简单,高中生都能做的事就别拿来炫耀
    shoaly
        26
    shoaly  
       2016-10-03 11:02:33 +08:00
    @kisshere 还是不一样你写的 很可能找不到, 但是 TP 有那么多文档可以查, google 百度也应该可以搜到答案, 如果找不到 , 倒是你的问题
    kisshere
        27
    kisshere  
    OP
       2016-10-03 11:04:25 +08:00
    @shoaly 正如楼上所说, TP 每次过河拆桥,造个新项目就抛弃老项目,叫我咋查老版本的 TP ?
    likai
        28
    likai  
       2016-10-03 11:05:42 +08:00
    @kisshere
    对于一个不熟悉的框架.难道不是第一时间看官方文档么?
    tp5 没用过不清楚,tp3 你确定你看过文档?或者说看过 index.php 这个文件的源代码?
    Perry
        29
    Perry  
       2016-10-03 11:17:32 +08:00
    /t/217042

    "也不能这么说, thinkPHP 因为受众量多而且是中文,所以逼格不够高,但是中国用 thinkPHP 的估计和 laravel 不相上下吧, thinkPHP 是我的启蒙框架,文档齐全,是入门的好框架"

    thinkPHP :我真是白启蒙这娃了,还反咬我
    Chyroc
        30
    Chyroc  
       2016-10-03 11:18:53 +08:00
    tp 的 debug 不知道在哪,真的说不过去=。=
    nikoukou
        31
    nikoukou  
       2016-10-03 11:19:41 +08:00
    掉你马屁的鱼,滚蛋。
    iRiven
        32
    iRiven  
       2016-10-03 11:25:32 +08:00 via Android
    新手路过,表示什么都不懂,还停留在语言层面
    frozenshadow
        33
    frozenshadow  
       2016-10-03 11:33:03 +08:00
    @Perry
    @bugmenein
    我只想说:干的漂亮!!
    Felldeadbird
        34
    Felldeadbird  
       2016-10-03 11:39:24 +08:00 via iPhone
    日常黑。吐槽之前,请问楼主有没有得出手的框架?
    Pengg
        35
    Pengg  
       2016-10-03 11:52:08 +08:00 via iPhone
    debug 的配置都找不到,就别急着喷了,
    (另: thinkPHP -> ThinkPHP )
    t0byxdd
        36
    t0byxdd  
       2016-10-03 11:53:17 +08:00
    tp 臃肿 哈哈哈哈
    sunsh217
        37
    sunsh217  
       2016-10-03 12:08:11 +08:00
    是的,确实臃肿,所以你应该试试 codeigniter.
    branchzero
        38
    branchzero  
       2016-10-03 12:22:19 +08:00
    看来 LZ 没用过 Laravel 之类的框架。。。
    要轻框架有 Slim 之类的,如果只是很小的项目用重框架不是自己作么。。。
    falcon05
        39
    falcon05  
       2016-10-03 12:49:46 +08:00 via iPhone
    用过 tp2.0 ,总的感觉是很多地方把简单问题复杂化,文档夸夸其谈,一大堆不说重点,现在不知道有没有好点。
    ovear
        40
    ovear  
       2016-10-03 12:55:00 +08:00
    恩。。。 TP 的 hello world 的 stack trace 只有几行,至少没有某 L 开头最优雅框架,一个 hello world 能弄出几十行 stack trace
    还有 20 来 M 的 hello world 。。 CI 和 TP 相比真心轻了不少

    我反倒觉得 Thinkphp 的脉络清晰不少,至少没有什么 Facde Container 之类的新概念。另外 TP 的代码注释也写的不错的。。实在看不懂在框架里找到对应的方法扫一眼就会了。
    luziafy
        41
    luziafy  
       2016-10-03 12:57:33 +08:00
    @kisshere 没有文档吗?没有的话你还是别开发了,直接鄙视我就 OK 。有的话,文档里搜索一下 debug\调试\DEBUG 能搜到吗?搜不到?别写文档了,直接鄙视我就 OK
    sherlocktheplant
        42
    sherlocktheplant  
       2016-10-03 12:59:25 +08:00
    Java EE 笑而不语
    shlabc
        43
    shlabc  
       2016-10-03 13:28:44 +08:00
    推荐 YII2 ,既强大、速度也不慢,适合团队开发,个人用也没问题
    TaMud
        44
    TaMud  
       2016-10-03 13:34:54 +08:00
    @sherlocktheplant
    Java EE 笑而不语
    baozijun
        45
    baozijun  
       2016-10-03 13:43:33 +08:00
    @sherlocktheplant 然而现在都是用 spring-boot 开发 Microservice 了,个人开发必备。
    Tyanboot
        46
    Tyanboot  
       2016-10-03 13:46:42 +08:00 via Android
    ???你说 tp 臃肿??你用过 laravel 没?让你看看什么才叫臃肿= =
    iminto
        47
    iminto  
       2016-10-03 17:53:55 +08:00
    TP 不是太复杂,是不够“复杂”
    luojing
        48
    luojing  
       2016-10-03 18:28:05 +08:00 via Android
    我觉得框架最大的价值是用过这个框架的人能快去看懂接手别人做的系统,另外能在安全性方面少一些担心。
    xuhaoyangx
        49
    xuhaoyangx  
       2016-10-03 18:37:52 +08:00
    暴露水平的一段话
    penjianfeng
        50
    penjianfeng  
       2016-10-03 19:19:46 +08:00
    当初玩 PHP 的时候受不了 TP 这个奇葩的 ABCD 函数名以及臃肿,然后自己写了一个..楼主可以参考下
    scusjs
        51
    scusjs  
       2016-10-03 19:29:37 +08:00
    哈哈哈哈哈哈哈,楼主看看还是看看文档吧
    techmoe
        52
    techmoe  
       2016-10-03 19:44:27 +08:00
    我也烦以前 tp3 那个时候的各种单字母助手函数,但是**TP5 已经取消所有单字母助手函数了**
    tp3 和 tp5 本质上都是两个东西,如果认为后者只是新版本的前者就错了,有点类似于 py2 和 py3 的关系吧
    jayin
        53
    jayin  
       2016-10-03 20:37:30 +08:00 via iPhone
    月经贴
    mactaew
        54
    mactaew  
       2016-10-03 21:56:45 +08:00
    @sunsh217 不能同意更多,关于 CI 。简单到看 Laravel 的文档看到脑袋疼。可能因为我只是业余拍黄片的。另外请教各位大神,相比 Laravel ,能不能说 CI 的工程化程度比较低?
    zonghua
        55
    zonghua  
       2016-10-03 22:07:36 +08:00
    peneazy
        56
    peneazy  
       2016-10-03 22:38:17 +08:00 via Android
    想学点 PHP
    special
        57
    special  
       2016-10-03 22:47:07 +08:00
    大家有没有觉得, PHP 是世界上最臃肿难用的语言?
    normalcoder
        58
    normalcoder  
       2016-10-04 09:33:08 +08:00
    @falcon05 2.0 好多年了。 3.2 系和 5.0 系比较好用。可以淘淘水
    byuc
        59
    byuc  
       2016-10-04 12:01:20 +08:00
    是呀,又复杂又臃肿超级难用。建议 LZ 用下 spring 。
    EthanLiao
        60
    EthanLiao  
       2016-10-04 12:27:46 +08:00 via iPhone
    GoLaravel!
    pyufftj
        61
    pyufftj  
       2016-10-04 20:23:55 +08:00
    @bugmenein 楼主竟说我大 phpstorm 是祸害。无语了,这是 php 神器好吗
    dphdjy
        62
    dphdjy  
       2016-10-04 21:19:04 +08:00 via Android
    参照学习成本,薪酬再来讨论这个问题
    hetal
        63
    hetal  
       2017-02-10 14:50:14 +08:00
    slightphp 适合楼主
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3432 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 11:24 · PVG 19:24 · LAX 03:24 · JFK 06:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.