SHMILY
See How Much I Love You!!PHP 8.1 / 8.2 / 8.3 升级踩坑实录:从 7.4 到 8.3 我改了哪些代码
项目从 PHP 7.4 迁到 8.3,一开始以为只是改改配置,结果 error_log 刷了几百行。这篇把实际踩到的坑按「编译期致命 / 运行时告警 / 静默行为变化」三类整理出来,附上修改前后...
用反射手写一个依赖注入容器(PSR-11 实现)
框架用久了容易把「容器」当黑盒。这篇从零写一个能用的 DI 容器,支持自动装配、单例复用、接口绑定和循环依赖检测,最后对齐 PSR-11 接口。一、容器到底解决了什么问题先看一段典型的「手工装配...
PDO 预处理不是万能药:几个真实场景下的 SQL 注入误区
「用 PDO 预处理就不会有注入」——这句话只对了一半。参数化能保护值,但保护不了标识符和结构。这篇把实际代码里反复出现的几个误区拆开讲。一、先明确预处理的边界PDO 预处理能安全处理的只有一种...
把 PHP 的错误处理捋清楚:Error、Exception 和 Throwable 到底什么关系
很多人写了几年的 try...catch,但遇到 Fatal error 抓不住、Warning 又不知道去哪了。这篇把 PHP 的错误与异常体系从根上讲一遍,附一套可以直接用的全局处理器。一、...
Composer 自动加载到底做了什么:从 spl_autoload_register 到 PSR-4
composer require 一行命令就能用别人的库,但 require 'vendor/autoload.php' 背后到底发生了什么?这篇把自动加载的链路拆开,顺便说清楚 PSR-4 的...