php教程技术文章
-
PHP Generator 可以把逐行读取改成惰性迭代:函数用 yield 每次产生一条记录,foreach 按需消费,配合 finally 关闭文件句柄,适合大文件顺序处理和找到目标即停止的场景。344 收藏 -
PHP OPcache 预加载不是普通文件缓存。本文从 php.ini、preload.php、PHP-FPM 主进程和请求 worker 的生命周期出发,说明部署后何时必须重启、何时可 reset,以及如何安排回滚。343 收藏 -
Composer 依赖冲突的核心是多个版本约束没有共同候选。先用 prohibits/why-not 还原阻塞路径,区分普通包与 PHP、扩展等平台依赖,再通过局部 update、-W、--minimal-changes 与 dry-run 控制最小调整面。341 收藏 -
PHP 8.0 及以上可以用 str_ends_with() 判断字符串后缀。本文说明参数顺序、大小写敏感、空字符串返回 true,以及文件扩展名封装时的版本与编码边界。341 收藏 -
文章 · php教程 | 1星期前 | 消息队列 · PHP · 进程管理 · Symfony Messenger messenger:consume --limit --time-limit --memory-limit Worker生命周期
Symfony Messenger Worker 默认会持续运行。本文区分 --limit、--time-limit 和 --memory-limit 的职责,并说明如何交给 Supervisor 或 systemd 重新拉起进程,避免把消息数量、运行时间和内存边界混成一个参数。341 收藏 -
PHP 8.2 起可用 ini_parse_quantity() 把 128M、512K、1G 转为字节整数。本文说明单位、进制、警告处理与 memory_limit=-1 的边界。338 收藏 -
PHP levenshtein 可分别配置插入、替换和删除代价。本文用短 ASCII 示例说明参数顺序、最小成本选择、方向差异,以及输入约束、阈值调整和配置回退方法。337 收藏 -
对比 PHP BackedEnum::from 与 tryFrom 的返回和失败语义,结合内部状态、HTTP 参数、数据库字段与 strict_types 给出选用方法。335 收藏 -
用 PHP IntlTimeZone::hasSameRules 比较两个时区的规则与偏移,说明它与时区 ID、地区代码和当前时刻偏移判断的边界。335 收藏 -
用 Symfony Messenger 配置退避重试和 failure transport,查看、人工重试失败消息,并用异常分类与幂等处理降低重复消费风险。333 收藏 -
PHP Fiber 的 start、suspend、resume 返回值并不是协程最终结果。只有 Fiber 正常终止后,才能用 getReturn 读取回调的 return 值;未启动、未结束或异常退出时要处理 FiberError。333 收藏 -
PHP grapheme_strstr 默认从首次匹配处返回包含匹配串的尾部,beforeNeedle=true 时返回匹配串之前的内容。本文用 UTF-8 文本示例说明如何按字素边界继续取得匹配串之后的部分,并处理 false 返回值。333 收藏 -
用 PHP Locale 的提取方法拆分语言、文字体系和地区字段,并通过输入边界、支持列表与审计记录避免把区域偏好误当成权限判断。332 收藏 -
Laravel Queue 重试应同时控制尝试次数、退避时间和任务截止时间。本文用 worker 参数与 Job 配置说明如何处理瞬时故障、超时、失败记录和选择性回放。326 收藏 -
PHP 8.5 将 boolean、integer、double、binary 这四种非规范转换名标记为弃用。本文对照 bool、int、float、string 的迁移关系,并补充 settype 类型字符串与代码库回归清单。325 收藏