登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
资讯
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
PHP 的问题不在语言本身,而在我们怎么写它 ...
PHP 的问题不在语言本身,而在我们怎么写它
[ 复制链接 ]
匡菲
6 天前
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
PHP 的问题不在语言本身,而在我们怎么写它
代码库烂了不是语言的锅,是赶工和惯性。
PHP 的口碑,几乎在每次技术讨论中都会被拎出来。应用慢、乱、不安全、改起来痛苦?总有人耸耸肩说:"嗯……毕竟是 PHP 嘛。"
这话很少出于技术判断,更像是一种习惯性甩锅。
事实比这简单,也更扎心:大多数 PHP 系统之所以难维护,是我们自己放任的结果。PHP 不会一上来就逼你做架构设计、划边界、守规矩。它很宽容,很务实,特别擅长让你把一个“能跑就行”的东西赶出来。
但今天能跑的代码库,明天可能就是灾难。
一个 PHP 项目沦为恐怖故事,很少是因为 PHP 做不到更好,而是团队从来没养成那些能让项目越做越大还不崩的习惯——结构、测试、约定、关注点分离。
现代 PHP 完全有能力做到:
严格类型(是的,真正的类型)
整洁架构
依赖注入
表达力强的领域模型
规范的错误处理
可靠的测试
高性能(OPcache/JIT、缓存、合理的 I/O)
成熟的工具链
如果你对 PHP 的印象还停留在"到处 include 文件"和"在视图里写 SQL",那你骂的不是 PHP 这门语言,而是一种早该被淘汰的 PHP 写法。
这篇文章不是在给 PHP 洗地,只是想说清楚一件事:PHP 是一面镜子,照出来的是你的工程文化。照出来不好看,换面镜子也没用。
PHP 很宽容——宽容的语言会放大你的习惯
有些语言生态从一开始就逼你把结构搭好。想做稍微复杂一点的东西,就绕不开包、模块、接口、依赖注入这些概念,哪怕你没主动要求,约束也自动就在那了。
PHP 的玩法不一样:
可以从一个文件起步
可以毫无阻力地混合各层
可以在任何地方访问全局变量
可以在控制器里直接查数据库
可以忽略类型照样上线
这种灵活性本身不是坏事,PHP 靠它当了多年 Web 开发的默认选择。但它也埋了一个坑:结构显得可有可无,而可有可无的东西在赶工时一定会被砍掉。
很多“PHP 太烂了”的故事,背后的真实剧情是“赶工期上了线,然后重构的债一直没还”。
PHP 没有造成这个问题,它只是没有阻止。
"都怪 PHP"往往是在逃避责任
系统让人痛苦的时候,甩锅给语言最省事,因为语言最容易看到。真正的原因往往藏得更深:
没有统一的编码规范
没有架构负责人
没有测试
没有为重构分配时间
代码评审时松时紧
"先交付再说"的激励机制
这些问题哪个技术栈都有。区别在于 PHP 能让你在几乎没有约束的情况下把项目推得很远,技术债悄悄攒着——然后在某一天集中爆发。
PHP 成了替罪羊,因为承认流程烂了,比甩锅给语言难多了。
现代 PHP 不是你记忆中的 PHP
如果你对 PHP 的认知还停在"
HP 5 加一堆随意 include"的年代,那你错过的东西太多了:
declare(strict_types=1);
标量类型和返回类型
类型化属性
联合类型
枚举
属性注解(Attributes)
更好的错误语义
Composer 成为标配
PSR 标准
优秀的框架(Laravel、Symfony)和组件
静态分析工具(PHPStan/Psalm)
代码格式化工具(PHP-CS-Fixer)
容器化 / CI 工作流
语言进化了,但很多团队没有。
所以真正的问题是:你写 PHP 的时候,是把它当成一门现代后端语言,还是当成赶工时凑合用的脚本?
经典 PHP 反模式:"什么都塞进控制器"
下面这套流程,在很多项目里都能看到:
控制器接收请求
控制器做验证
控制器拼查询
控制器处理业务规则
控制器更新数据库
控制器格式化响应
控制器触发副作用(邮件、队列)
能跑,能上线,功能还能往上堆。然后就开始变脆——因为控制器已经变成了一个揽了业务规则、数据持久化和 I/O 的上帝对象。
看一个简化版的例子。
❌ 反模式:所有逻辑塞在控制器里
[code]
PHP
问题
不在
语言
本身
相关帖子
用 PHP 玩转图片:缩放、裁剪、水印、滤镜一网打尽
PHP 现在可以零成本构建原生 iOS 和 Android 应用 NativePHP for Mobile v3 发布
C语言版2048小游戏
语言开发随笔2
约瑟夫问题模拟算法可视化程序_C++精灵库算法可视化程序
一个用vue3和c++实现的背包问题可视化系统
PHP 应用遭遇 DDoS 攻击时会发生什么 从入门到进阶的防护指南
一款Go语言Gin框架DDD脚手架,适合快速搭建项目
LuoguP2218 [HAOI2007] 覆盖问题 题解
从0到1,无代码微调并部署本地大语言模型LLM
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
业界
用 PHP 玩转图片:缩放、裁剪、水印、滤镜一网打尽
7
718
阎一禾
2026-01-31
业界
PHP 现在可以零成本构建原生 iOS 和 Android 应用 NativePHP for Mobile v3 发布
11
881
敞撬
2026-02-02
业界
C语言版2048小游戏
18
850
辖瑁地
2026-02-02
业界
语言开发随笔2
16
963
峰邑
2026-02-02
业界
约瑟夫问题模拟算法可视化程序_C++精灵库算法可视化程序
7
464
绘纵
2026-02-04
安全
一个用vue3和c++实现的背包问题可视化系统
10
834
搁胱
2026-02-04
业界
PHP 应用遭遇 DDoS 攻击时会发生什么 从入门到进阶的防护指南
0
10
游康
2026-02-09
业界
一款Go语言Gin框架DDD脚手架,适合快速搭建项目
2
749
姚梨素
2026-02-13
安全
LuoguP2218 [HAOI2007] 覆盖问题 题解
0
662
洪思思
2026-02-13
业界
从0到1,无代码微调并部署本地大语言模型LLM
2
801
萨瑞饨
2026-02-16
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
安全
科技
签约作者
程序园优秀签约作者
发帖
匡菲
6 天前
关注
0
粉丝关注
15
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
3934307807
991124
anyue1937
9994892
kk14977
6845359
4
xiangqian
638210
5
宋子
9899
6
韶又彤
9918
7
闰咄阅
9993
8
刎唇
9995
9
蓬森莉
9884
10
遗憩
10006
查看更多
今日好文热榜
77
[LKD/Linux 内核] 关于对 current_thread_i
6
[LKD/Linux 内核] 关于对 current_thread_i
5
[LKD/Linux 内核] 关于对 current_thread_i
536
杂题选做(3)
4
9、PipedInputStream和PipedOutputStream的
752
凸优化数学基础笔记(五):极小值点的判定
856
【节点】[MainLightRealtimeShadow节点]原
11
【渗透测试】HTB靶场之WingData 全过程wp
381
2023年电赛国赛经历
534
从零开始学Flink:实时数仓与维表时态Join
987
Stanford-CS336-Lecture-01 学习理解
663
FastAPI实战:WebSocket长连接保持与心跳机
361
FPGA使用镜像加载技术来切换运行中的比特流
405
赋予 AI Agent “无限续航”:语义保护型上
407
企业健身房器材配置方案:拒绝纸上谈兵,上
4
读人工智能全球格局:未来趋势与中国位势09