ThinkPHP 是我用过(维护过)的最恶心的 PHP 框架,没有之一

2021-07-06 11:06:52 +08:00
 GM

想简洁高效的话,CI 不香吗? 想工程化一点的话,Yii 不香吗? 想优美的话,Laravel 不香吗?

真弄不懂为什么会有人用这 shit 一样的 ThinkPHP 。


迫于要维护一个 ThinkPHP 开发的辣鸡系统有感。

(我吐槽的是 ThinkPHP 框架部分代码,而不是这个辣鸡系统的代码)

11688 次点击
所在节点    PHP
91 条回复
haha512
2021-07-06 19:11:00 +08:00
用个框架还用出阶级仇恨来了
we8105
2021-07-06 19:12:45 +08:00
真是 有框架用就不错了

还有就是怎么还在用 php 呀
zxcslove
2021-07-06 19:20:10 +08:00
很多产品的问题都出在文档上吧,tp6 这方面很突出。文档描述和实际情况不一样,各种遮遮掩掩,没有详细参考。
abccccabc
2021-07-06 20:22:40 +08:00
@oneforallsoft 最终这个问题是对方解决的。也没和我多说。
JaguarJack
2021-07-06 20:48:42 +08:00
@zxcslove 主要经常改底层接口
akira
2021-07-06 22:11:01 +08:00
适合新人上手
MengiNo
2021-07-07 02:07:48 +08:00
@abccccabc 感觉是你配置哪里不对,或者电脑有问题。我在腾讯云、阿里云上随便开一个 1 核 2G 的机器,在上面装个 docker,启动个 Laravel 项目的容器,用自己笔记本的 vscode-remote 连到服务器的 容器 内开发。算上 vscode PHP 相关的 5 、6 个插件,2G 内存同时开 两个 这样的容器完全不费劲,何况是本地的 docker 。而且用 alpine 为底最大的作用还是减少硬盘的占用,内存方面 PHP 作为非常驻内存的语言来说,本地测试没什么量的情况下基本不占用多少。要精细控制的话 docker 的 desktop 版本也都有带 docker swarm,加个配置轻松就可以限制单个容器的内存占用。

在加上 alpine 作为精简包一般都是作为线上环境自定义镜像的底。开发、测试环境用这种底,连个基础的 ps 、tail 工具都没有,装一些 PHP 扩展 大概率也会缺包。虽然可以后续去装,但开发、测试环境本身不就是为了快速的使用、方便调试。这样还需要后续调试半天,使用场景也不太合适。至于验证兼容性从结果上看就更不存在了,毕竟最终上线部署的服务器绝大部分都是 Linux,开发和测试环境要尽可能仿真。如果他在 Windows 上行,上线到 Linux 之后出现一些奇奇怪怪的问题,那还说兼容性不行(不过这也算常态,不然 docker 也不会这么火)。如今反过来,还是本地环境配置不到位。

最终还是知其然要知其所以然,alpine 这类精简发行版到底精简了什么,或者反过来说你这个项目到底依赖什么,缺了会导致什么问题。这点没有概念的话,哪怕用 Golang 这种最终编译成二进制文件的、只与平台相关几乎和外部环境无关的情况下,无脑用 alpine 照样大概率跑不起来。用这种论据说 Laravel 不如 TP,个人还是不太认可的,只能说 TP 相对于 Laravel 依赖更少,但依赖更少在现代包管理软件的加持下,只能算中立属性,并不算什么核心的优点。
shellic
2021-07-07 09:10:25 +08:00
其实垃圾的主要还是人,项目开始前就定好了规范,总有人写着写着就放飞自我了
killerv
2021-07-07 09:27:12 +08:00
@abccccabc 我觉得应该不是 Laravel 的锅,我们在 Alpine 上跑过 Laravel,可能是项目依赖的组件需要某些 lib
dongtingyue
2021-07-07 09:45:41 +08:00
只是你不熟而已,个人认为最香的是自己用 composer 搭的,简洁明了。
不能扩展这个槽点应该是不存在的
abccccabc
2021-07-07 10:06:21 +08:00
@MengiNo 第三方也给我解释的含含糊糊。反正问题已经解决,所有平台都能跑起来,也就没有再继续追问对方。


@killerv 没错,是依赖某些组件,这个组件在全量的 linux 系统里运行没有问题,对方给我们演示时,mac,centos 都正常,但到了 alpine 环境就残了,不能走路了。
ykrank
2021-07-07 10:35:23 +08:00
@MengiNo 10-30 这 20 年和 30-50 这 20 年可不是一个人体状态
killerv
2021-07-07 11:34:30 +08:00
@abccccabc 这个在我看来不是 Laravel 的问题,就是系统选择和配置的问题,因为 alpine 就是残的,最近我们的某个 node 项目,在 node 容器镜像(基于 Debian )下都得额外安装一些 lib,alpine 缺的就更多了。
nate375
2021-07-08 09:13:00 +08:00
这个作为入门学习很有用
GM
2021-07-08 09:32:55 +08:00
@nate375

入门还是建议拿个代码风格良好、结构简单的框架来入门,比如 CI 。

不然一开始就养成不好习惯了,后续纠正那可就难了,比如体育教练喜欢教什么都不会的新人,而不是野路子了很久、一堆不良习惯纠正不过来的人。
ZiShuo
2021-07-09 11:02:49 +08:00
一个框架如果不认可,你可以选择不用或者是自己写个更优秀的开源出来,看楼主能不能把开源也和 TP 一样做 10 年,就这份毅力都是很了不起了,再者一个月薪几 K 几十 K 的人又有什么资格去批判一个已经有一定市场占有率的系统,或许你的工资总和还不如你口中这个垃圾系统创造的价值,说难听点你还不够格。
GM
2021-07-09 13:40:04 +08:00
@ZiShuo 对,如果你对已经花几千块钱购买的冰箱制冷效果不认可,你可以选择扔掉或者是自己造个更好的出来分享给大家使用,看看你能不能也像冰箱厂商一样做十年,就这份毅力都是很了不起了,再者一个月薪几 K 几十 K 的人又有什么资格去批判一个已经有一定市场占有率的冰箱,或许你的工资总和还不如你口中这个垃圾系统创造的价值,说难听点你还不够格。
thinkingbullet
2021-07-10 09:44:24 +08:00
框架只是工具,如果你看他不顺眼你自己造一个工具,如果没那个实力你可以换一个其他工具,如果其他工具也不能满足你,那你就给框架提代码提 pr,如果你啥都不做只想别人为你改变,那你终将一事无成.
wangyzj
2021-07-12 09:26:31 +08:00
依旧坚持在 tp3.2 上
lhg1397
2021-07-14 09:52:18 +08:00
为什么要用 php 不然换语言

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://yangjunhui.monster/t/787809

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX