php教程技术文章
-
批量导入校验里,str_contains 的空字符串行为很容易把缺失字段和任意内容混在一起。本文从一条失败记录开始,拆解 trim、str_contains 与 empty 的判断边界,并给出可回退到旧版 PHP 的写法。276 收藏 -
文章 · php教程 | 1天前 | 配置文件 · PHP · 类型校验 · INI_SCANNER_TYPED · 运行时排查 · php 类型转换 环境配置 parse_ini_file INI_SCANNER_TYPED
parse_ini_file 的默认扫描模式会把 on、off、数字和常量按 INI 规则转换,配置读取如果直接依赖字符串就容易出现类型漂移。本文用同一份 PHP 配置比较 NORMAL、RAW 与 TYPED 三种结果,并给出生产读取边界。276 收藏 -
SplObjectStorage 用对象身份管理集合或对象到数据的映射。删除前先用 contains 确认目标,能把重复删除、错误对象和遍历期间修改这些边界分开处理;本文用一个观察者注册表示范安全的 detach 流程。270 收藏 -
在 Symfony 4.4 里,如果给带有 doctrine.event_subscriber 标签的服务直接设 Mock,通常会撞上“Service is already initialized”这个异常。问题不在 Mock 本身,而在于 Doctrine 的订阅器会在容器构建阶段就被 Conta269 收藏 -
文章 · php教程 | 1个月前 | 依赖注入 · 架构设计 · PHP · PHP 8 · 属性 · ReflectionClass · 依赖注入 可测试代码 ReflectionClass 构造器注入 PHP 8 属性
不引入完整容器,也可以用 PHP 8 属性和反射做一个可控的轻量依赖注入容器。文章从构造器参数解析、服务注册、单例边界和测试替身四个角度,给出可运行的小实现,并说明哪些场景不该继续扩展。262 收藏 -
用 IntlDateFormatter 处理本地化日期时,真正容易出错的是格式器时区覆盖 DateTime 时区,以及 ICU 模式和 date() 模式不同。本文用 Asia/Shanghai 与 UTC 的可验证示例说明初始化、核对和边界处理。260 收藏 -
文件下载接口不能只判断文件是否存在,还要校验当前用户是否拥有资源、链接是否过期以及访问是否留痕。本文用 PHP 构建一条资源归属校验、短时签名和审计日志连贯的下载链路,并给出回归检查与回滚边界。257 收藏 -
用 PHP 8.4 的 public private(set) 拆分属性读写权限,让订单状态对外可读、类内可写,并核对接口、继承与兼容边界。257 收藏 -
文章 · php教程 | 1个月前 | nginx · PHP · 运维 · php-fpm · 部署优化 · 进程池 · php-fpm 进程池 PHP教程 pm.max_children 多站点部署 慢请求隔离
多个 PHP 站点共用一个 PHP-FPM 进程池时,一个慢接口就可能挤占所有工作进程。本文用订单站和报表站的部署场景,比较独立进程池、并发预算、慢日志与灰度回滚的落地做法。256 收藏 -
PHP 8.4 新增 mb_ucfirst(),可以按多字节字符安全处理标题首字母。本文从 UTF-8 标题清洗场景出发,核对编码、空字符串、null 参数和 PHP 8.3 兼容写法,给出可回归的最小实现。256 收藏 -
PHP 日期计算里,1 月 31 日加一个月并不一定得到 2 月最后一天。本文对比 DateTimeImmutable 的 modify、显式锚定月初再回退一天等写法,给出可验证的选择边界。254 收藏 -
PHP Generator 结束后进程内存没有回落,往往不是 yield 本身泄漏,而是迭代器仍被引用、foreach 引用残留或 finally 尚未完成。本文用可复现实验拆解判断顺序。254 收藏 -
文章 · php教程 | 1个月前 | PHP · api设计 · url编码 · 后端开发 · http_build_query · 查询参数 · PHP http_build_query PHP 数组参数 URL 查询参数 PHP_QUERY_RFC3986 重复键参数 接口参数设计
PHP 的 http_build_query 会把数组编码成带下标的方括号参数;这和不少接口要求的重复键写法不是一回事。用一个筛选接口场景梳理数组、null、空格编码与兼容策略,避免请求串看着对、下游却读不出参数。245 收藏 -
PHP 8.3 的 readonly 类能固定对象属性绑定,但集合对象仍可能被内部修改。本文用购物车快照示例说明浅拷贝、深拷贝、clone 重初始化和运行时不变量的边界。245 收藏 -
PHP PDO 的 FETCH_GROUP 适合把同一分类的多条记录聚在一起,FETCH_UNIQUE 则把唯一键映射成单条记录。本文用商品分类查询拆开两种结果结构、重复键覆盖风险、空结果验收与最小可运行写法。244 收藏