我记得多年前坐在一间灯光昏暗的办公室里,盯着一个看起来像是把 CodeIgniter 项目和一场发烧梦混合在一起的遗留代码库。当时,我周围的每个人都在追逐 Node.js 的高潮,低声议论“阻塞 I/O”如何是死刑判决,以及 PHP 如何是那些不懂“现代 web”的人的遗物。我们被告知,如果我们不迁移到反应式、事件驱动、非阻塞的乌托邦,我们基本上就是等待陨石的恐龙。
嗯,陨石从未落下。事实上,当 JavaScript 生态系统忙于第十五次重新发明如何居中文档时,而 Go 试图说服我们错误处理应该感觉像重复性劳损时,PHP 只是继续发布。它不仅仅保持相关性;它成为了全球经济的安静、不灭引擎。你最近真正看过你的技术栈在处理什么吗?因为我几乎可以保证,在你的供应链的某个地方,有一个 PHP 脚本在确保金钱真正流动。
这个行业有一种奇怪的、几乎病态的需求,要宣称某些东西已经死了。这让我们感觉自己是革命的一部分。但如果你看原始数据,PHP 仍然驱动着超过 75% 的 web。这不是四舍五入的误差。这是完全的市场主导。我们花了十年时间把历史上最成功的后端语言当作贱民对待,同时偷偷用它来驱动世界上最成功的商业。
这个语言的“丑陋”起源是众所周知的。我们都知道 Rasmus Lerdorf 只是想一种方式来跟踪他的简历点击的故事。我们知道函数名一团糟,needle/haystack 不一致是每个初级开发者的必经之路。但专注于一个三十年老语言的伤疤,就像抱怨一辆法拉利保险杠上有划痕,而它正在赛道上超过你一样。当批评者们还在嘲笑 2008 年的 meme 时,PHP 核心团队忙于交付软件历史上最令人印象深刻的架构转向之一。
预测未来的最佳方式是构建人们今天实际使用的东西,而不是明天可能完美的东西。
从 5.6 版到 7.0 版的跳跃不是补丁;那是心脏移植。我们看到了性能提升, literally 一夜之间为大型企业将服务器成本减半。然后是 8 版,带来了 JIT 编译、属性和构造函数提升。突然间,这个“杂乱”的语言开始看起来比许多自称是其继任者的语言更干净、更严格类型化。你确定你当前的索引甚至没有像现代 PHP 8.2 FPM 池那样努力工作吗?
让我们谈谈 Laravel 效应。在 Taylor Otwell 出现之前,PHP 是一堆工具。之后,它成为了一个优先考虑开发者幸福而非学术纯度的生态系统。Laravel 不只是带来了结构;它带来了其他社区仍在努力复制的集成工具水平。我们在谈论内置队列、实时广播、健壮的依赖注入,以及一个真正让你想写测试的测试套件。当你看 Livewire 或 Inertia 这样的工具时,你会看到一个社区停止在意“酷炫”而开始在意生产力。
开发者中存在一种特定的认知失调,他们嘲笑 PHP,而他们自己的营销部门运行在 WordPress 上。他们会整天争论 Rust 的所有权模型,然后回家检查他们的银行余额,在一个很可能运行 Symfony 后端的网站上。为什么我们如此痴迷于“新”的东西,而“旧”的东西才是真正支付账单的?你们到底在为谁优化?想要快速、正常运行应用的终端用户,还是想在你的 LinkedIn 资料上看到特定关键词的招聘人员?
在我从事旅行科技和教育科技的工作中,我见过“现代”技术栈在并发问题下崩溃,而一个调优良好的 PHP/Laravel 设置会轻松处理。PHP 的可扩展性不是理论;它是维基百科和 Etsy 规模的已证明事实。我们学到,水平扩展是伟大的均衡器。如果你能向问题抛出一个廉价的 FPM 容器,你就赢得了经济战的胜利,即使你输掉了“纯度”战。
仇恨持续存在,因为 PHP 是 web 的“蓝领”语言。它易于访问、务实,并且入门门槛低。在一个常常以守门和复杂性自豪的领域,一种让自学成才的青少年建立十亿美元生意的语言是对自负的威胁。我们把简单误认为是弱点。我们把无处不在误认为是缺乏创新。
下一个十年不会是关于取代 PHP 的“下一个大事件”。它将是关于安静认识到 PHP 从一开始就是正确工具的觉醒。随着 Swoole 和 RoadRunner 这样的异步引擎,性能差距已经有效关闭。这个语言已经成熟为一个复杂、类型安全的强国,同时保持了让它成名的“刷新并看到结果”工作流程。
所以,这是对怀疑者的现实检查。你可以继续等待葬礼,但你会等很长时间。当你忙于辩论最新 JS 框架的优点时,PHP 正在那里处理支付、管理内容,并运行允许你进行那些辩论的基础设施。后端战争结束了。PHP 不只是生存下来;它是站在十几种承诺世界却只交付了破损构建过程的“杀手”残骸之上。
问题不是 PHP 是否死了。问题是:为什么你还在假装它是?