php教程技术文章
-
Symfony Process 的总超时限制进程累计运行时间,空闲超时限制距上次输出的连续沉默时间。本文用配置示例和输出边界说明两者如何组合。188 收藏 -
PHP 跨层处理异常时,把底层 Throwable 作为自定义异常构造函数的第三个参数传入,再用 getPrevious() 向下遍历,就能同时保留业务语义和原始原因。188 收藏 -
PHP iconv_mime_encode 的 Q 和 B 都用于生成 MIME 头字段,但适用的内容结构不同。本文从中文、ASCII 混合文本、字符集和折行参数出发,给出可执行的选择规则与对比示例。186 收藏 -
PDO::rollBack() 并不保证能撤销事务里的 DDL。以 PDO_MYSQL 和 MySQL 为例,CREATE TABLE、ALTER TABLE 等 DDL 可能先隐式提交当前事务,正确做法是把结构迁移与业务数据事务分开。185 收藏 -
通过 Fiber::suspend、resume 和 throw 理解 PHP Fiber 如何暂停深层调用栈,并用生命周期状态和 finally 处理恢复、异常与资源清理。185 收藏 -
说明 PHP readonly class 的真实边界,对比配置快照、值对象和领域实体的生命周期,并给出可变实体组合只读值对象的实用建模方案。178 收藏 -
文章 · php教程 | 2星期前 | JSON · 枚举 · php教程 · 语言特性 · php enum json_encode JsonSerializable backed enum JSON API
PHP backed enum 用 json_encode 时默认输出它的 string 或 int backed value;pure enum 不能直接编码为 JSON。本文说明默认序列化、JsonSerializable 覆盖、数组与 DTO 组合、错误处理和接口兼容演进。177 收藏 -
文章 · php教程 | 2星期前 | 工程实践 · php教程 · php redis Symfony Cache 缓存标签 TagAwareCacheInterface invalidateTags
Symfony Cache 的标签失效适合处理一个业务对象对应多个缓存键的场景。本文从直接删除、标签失效与 TTL 的边界出发,说明怎样设计标签、配置 TagAwareCacheInterface,并把失效动作放到稳定的写路径中。175 收藏 -
用 Throwable::getPrevious() 逐层整理 PHP 异常链,示范包装异常、结构化日志和敏感信息脱敏的实用写法。175 收藏 -
从一个可回滚的 PHP-FPM pool 小配置出发,说明 pm 模式、进程上限、慢日志与请求超时如何配合,避免只调大 pm.max_children。174 收藏 -
讲清 PHP PDO 处理可变长度 IN 查询时的占位符生成、数组绑定、空数组策略和参数边界。174 收藏 -
从 pm.max_children、static/dynamic/ondemand、状态页、慢日志和 pm.max_requests 五个角度,说明 PHP-FPM worker 并发的容量边界与小步调参方法。172 收藏 -
Composer 插件会在 Composer 运行时改变安装、下载或命令行为。本文比较 allow-plugins 的精确白名单、组织通配符、全部允许和全部禁止策略,给出适合项目、CI 与生产环境的配置边界。170 收藏 -
PHP 8.2 起可以用 #[SensitiveParameter] 标记密码、令牌等参数,让它们在异常堆栈中以 SensitiveParameterValue 代替原值。本文按现象、证据和边界说明怎样排查配置是否生效。170 收藏 -
PHP 文件上传不能只看文件名后缀,应在保存前同时检查上传错误码、服务端文件大小、扩展名白名单和 Fileinfo 检测出的 MIME,并使用随机文件名与 move_uploaded_file 落盘。本文给出完整处理器、表单接入和验收清单。167 收藏