PHP的中年危机:从互联网基建到边缘生态的真实处境

上周帮老客户排查一个电商后台的宕机问题,翻到第三层代码的时候,看见满屏的<?php标签,瞬间愣了三秒。

不是因为代码写得烂。是太熟了——那是2016年外包团队写的老系统,当时为了赶双11的进度,连缓存层都没做,直接把数据库查询嵌在模板里,跑了八年,居然扛住了每年几百万的订单,直到去年服务器升级,才出了点小问题。

很多人说PHP死了。

真的死了吗?

被误解了三十年的“脚本语言”:PHP的真实能力边界

很多人对PHP的印象还停留在“最好的语言”的网络梗里,觉得它就是个写网页的玩具,性能差,不严谨,连类型系统都没有。

这是天大的误会。

PHP从1995年诞生的那天起,核心设计目标就只有一个:最快的Web开发效率。它天生就是为嵌入HTML设计的,你不需要写额外的模板引擎,不需要配置复杂的运行环境,把代码放到服务器的指定目录,敲个回车就能跑。

快。

真的快。

那种不需要提前打包编译、改完一行代码刷新页面就能看见效果的反馈速度,是Java、Go这类需要全量构建的语言根本比不了的,哪怕现在各种前端热更新吹得天花乱坠,你让一个做了十年PHP的老开发者切到需要等几十秒构建的技术栈,他第一反应还是会皱眉头。

但它的能力边界也从设计之初就刻死了。PHP原生的共享-nothing架构,意味着每个用户请求进来,都会独立启动一个完整的运行环境,请求处理完就立刻释放所有资源。这种设计天生适合短平快的Web页面请求,但在需要常驻内存、长连接、高并发流式处理的场景下,就显得格外笨重——这也是后来Node.js、Go能快速抢占后端市场的核心原因。

别信那些说PHP性能拉胯的鬼话。你拿PHP写个简单的接口做压测,只要你别在代码里嵌套三层foreach循环查数据库,它的响应速度比大部分你瞎写的Java Spring Boot接口快得多——毕竟Spring启动一次的时间,够PHP处理完一千个请求了。

PHP 8.3 版本性能基准测试对比图
PHP 8.3 版本性能基准测试对比图

生态的塌方:从80%市场占比到被边缘化的真实原因

2010年前后,全球超过八成的网站后端是PHP写的。那时候你随便找个互联网外包团队,不会PHP根本接不到活——小到企业官网,大到当时的新浪、百度的早期内容系统,全是PHP搭的。

现在呢?

Stack Overflow2024年的开发者调查里,PHP的使用率已经跌到了第十名开外,被Rust、Go甚至TypeScript全栈压得抬不起头。招聘平台上搜PHP的岗位,大部分都是维护老系统的运维类岗位,真正招新开发的岗位,占比不到后端总岗位的5%。

很多人把这个衰退归咎于PHP本身技术不行。错了。

真正的原因是整个互联网的技术语境变了。

移动互联网兴起之后,大家需要的后端能力不再是快速生成一个HTML页面,而是要支撑百万级的APP长连接推送、要做跨机房的微服务调度、要适配云原生的容器化部署。这些场景下,PHP原生的架构短板被无限放大,而社区的迭代速度又完全跟不上需求——你现在去GitHub上找个适配K8s的PHP服务发现插件,翻遍整个仓库都找不到一个维护超过两年的版本。

更现实的问题是,整个行业的技术叙事已经变了。现在的创业公司讲技术栈,张口就是云原生、微服务、Serverless,你要是说自己用PHP做核心系统,融资的时候都不好意思跟投资人打招呼。这种自上而下的叙事倾斜,直接把PHP推到了技术鄙视链的最底端,刚毕业的年轻人根本不愿意学——谁愿意学一个被学长学姐说是“老古董”的语言啊。

2015-2024 全球后端语言市场份额变化折线图
2015-2024 全球后端语言市场份额变化折线图

但就算是这样,PHP也从来没有真正离开过。

你现在访问的全球三分之一的网站,跑的是WordPress,全是PHP写的;很多跨境独立站用的Magento系统,核心代码全是PHP;我见过最离谱的一个客户,公司的核心订单系统是2008年写的PHP4代码,现在公司年营收两个亿,CTO换了三任,没人敢重构——怕动了哪个十年前的老逻辑,直接把几十万老用户的订单搞丢了。

这哪是技术栈啊。

这是公司的核心资产,碰都碰不得。

没有消亡的PHP:藏在边缘地带的新机会与隐忧

很多人不知道,PHP从8.0版本开始,已经悄悄做了很多改变。

强类型系统、JIT编译器、原生枚举支持,甚至连协程的底层接口都已经在核心分支里测试了。最新的PHP8.3版本,在计算密集型任务的性能上,已经摸到了Go语言的入门水平,哪怕是IO密集型的Web请求,性能也比十年前的版本提升了接近一倍。

更关键的是Swoole这个扩展。作为国内开发者主导的PHP生态项目,它直接绕开了PHP原生的共享-nothing架构,给PHP加上了常驻内存、协程、长连接的能力,现在基于Swoole做的Laravel Octane,能把原本的Laravel应用的响应速度提升5到10倍,很多之前大家觉得PHP根本做不了的场景——比如实时IM、高并发的秒杀系统,现在用Swoole都能跑。

但这些改变,根本没进入主流的技术叙事。

为什么?

因为整个PHP社区的老龄化太严重了。现在还在给PHP核心做贡献的开发者,大部分都是工作十年以上的老程序员,刚毕业的年轻人根本不愿意花时间去学一个在招聘市场上没有竞争力的语言。没有新鲜血液,就没有新的工具,没有新的场景,整个生态就进入了一个恶性循环。

更现实的问题是治理。PHP的核心维护团队没有商业公司的强力背书,不像Go有Google撑着,Rust有微软和Mozilla站台,PHP的核心维护者大部分都是利用业余时间做贡献的志愿者,迭代节奏慢,很多开发者呼吁了好几年的特性,到现在都没进正式版本。

我跟几个在大厂做技术选型的朋友聊过,大家对PHP的未来判断其实高度一致。

未来3到5年,PHP不会消失,但也永远回不到当年统治互联网的位置。

它会变成像现在的COBOL一样的隐形基建——你不会在新的独角兽公司的技术栈选型会上看见它,但它会默默支撑着全球一半以上的中小网站、老业务系统、个人博客。你每次打开一个十几年没更新的老论坛,每次在WordPress上写一篇博客,每次访问一个跑了十年的跨境独立站,背后跑的都是PHP。

说起来有点伤感。

当年我们这代程序员入行的时候,PHP是打开互联网世界的第一扇门。现在这扇门慢慢关上了,但门后面堆着的,是整个中国互联网从草莽时代到商业化时代的全部记忆。

哦对,上次那个宕机的电商系统,最后排查出来的问题不是代码的问题,是老的PHP版本对新的MySQL8.0的密码插件不兼容,把版本降了,系统当天就恢复了。

客户说,本来想趁这次宕机把系统全重构了,算完账发现要花两百万,还要停服半个月,想想还是算了。

那就继续跑吧。

反正PHP最擅长的,就是在没人注意的角落,默默跑上十几年。

作者|大讲堂

排版|大讲堂

审核|知知

免责声明:市场有风险,选择需谨慎!此文仅供参考,不作买卖依据。如有侵权请联系删除。
文章名称:PHP的中年危机:从互联网基建到边缘生态的真实处境
文章链接:https://m.lfdjt.com/info_23_25677.html