php教程技术文章
-
PHP Composer 的 config.platform 只改变依赖解析时看到的平台版本,不能证明生产环境真的满足要求。本文用 composer.json、composer update 与 check-platform-reqs 拆开迁移检查,帮助确认目标 PHP 和扩展是否可以发布。137 收藏 -
文章 · php教程 | 1天前 | unicode · 字符串处理 · php教程 · php unicode Intl Normalizer Decomposition_Mapping getRawDecomposition
用 PHP intl 扩展读取单个 UTF-8 码点的 Decomposition_Mapping,说明 getRawDecomposition 返回分解字符串、null 和 intl 错误信息时分别代表什么。137 收藏 -
PHP 8.4 属性钩子中,set 内用精确的同名属性语法写入的是背后存储,不会再次触发自身;本文还区分虚拟属性、动态访问和跨属性钩子带来的递归风险。136 收藏 -
PHP 枚举与数据库状态字段如果同时演进,最容易在重命名、删值和分批发布时产生漂移。本文给出稳定 backed value、集中映射、旧值兼容和分阶段迁移的完整做法。135 收藏 -
PHP 8.4 新增的 array_find() 会按回调条件返回数组中首个匹配元素的值;本文说明 value、key 参数、短路行为、null 未命中、array_find_key() 与旧版本 foreach 兼容写法。135 收藏 -
Laravel 配置缓存后修改 .env 不生效,通常与配置快照或长驻进程有关。本文用最小示例说明 env 与 config 的读取范围,以及开发、部署、队列和 Octane 的更新边界。134 收藏 -
PHP array_is_list 只看数组键是否从 0 开始连续递增。本文用多组输入说明空数组、稀疏键、字符串键和旧版本兼容处理。133 收藏 -
PHP WeakMap 适合给对象绑定派生元数据而不延长对象生命周期。本文用生命周期故障场景拆解弱键、强值、回收和 SplObjectStorage 的边界,并给出可直接改写的 PHP 8 示例。133 收藏 -
PHP-FPM 的 pm.max_children 不能只按 CPU 核数拍脑袋。本文从内存、CPU、数据库连接和排队风险四个约束估算起始值,再用 status 页面判断是否需要继续调整。132 收藏 -
用 ICU 规则字符串创建 PHP IntlRuleBasedBreakIterator,设置文本并读取边界与规则状态,同时说明 compiled 参数和中文分词边界。131 收藏 -
文章 · php教程 | 2星期前 | 文件上传 · nginx · php-fpm · 故障排查 · php教程 · php-fpm session.upload_progress PHP上传进度 fastcgi_request_buffering 请求缓冲
PHP session.upload_progress 只有在 PHP 持续收到 multipart 请求体时才能更新。本文从表单字段、session 轮询、Nginx FastCGI 请求缓冲和清理边界逐层排查为什么进度只在完成时跳变。126 收藏 -
PHP json_encode 返回 false 时,先用 json_last_error_msg 定位原因,再按非法 UTF-8、递归引用、资源类型和深度问题选择修复方案。本文用一个小型接口示例收拢异常处理。124 收藏 -
PSR-7 请求体是带游标的 StreamInterface,getContents() 读取后可能到达末尾。本文区分 getContents、__toString、rewind 和 seek(0),说明如何判断可回退能力,并在不可回退时用新流和 withBody() 让签名校验、日志与业务解析共享请求内容。123 收藏 -
文章 · php教程 | 3星期前 | 队列 · PHP · laravel · 工程实践 · 批处理 · Laravel 队列 失败重试 Job Batching queue:retry-batch
Laravel 队列批处理遇到失败项时,单个 Job 的 tries、backoff 与批次的 catch、allowFailures 并不是同一层重试机制。本文用批量同步场景拆解取消语义、失败批次重试入口和幂等边界,帮助你只重试可恢复且不会重复写入的数据。121 收藏 -
通过 PHP Locale::composeLocale 组合语言、文字体系和地区字段,并用受控选项、严格失败判断与配置来源记录管理应用的区域偏好。121 收藏