PHP 社区本周聚焦两大议题:Luca Rodenhäuser 通过扫描 5 000 个 Packagist 包,发现 1 447 条非 ASCII 标识符,提出在文件层面声明以规范变量名;Nick Sdot 发起 RFC,计划在 PHP 9 中正式废除对 PEAR 的官方支持,仅剩 Net_SMTP 仍在维护。两项提案均已引发关于兼容性、错误处理与生态维护的激烈讨论。
标识符规范
- 现行扫描规则按字节而非字符判断标识符,导致如$x(后接不间断空格)产生隐藏变量。
- 重新扫描 5 000 包后,约 14 % 的非 ASCII 标识符出现在 math‑php 中,用于公式表达。
- 提案分为诊断、良好形式规则和合规规则,旨在提供可选的 per‑filedeclare,并在 PHP 9 中可能强制执行。
PEAR 终止
- PEAR 被指已基本失活,仅 6 个包仍向其发布,其中 1 个独立维护的 Net_SMTP 被赞为 “legend”。
- RFC 主张移除官方 endorsement,防止长期未维护的仓库被垃圾邮件利用。
其他热点
- Sjoerd Langkemper 提议让octdec、hexdec、bindec、base_convert在非法输入时抛出ValueError,但在错误层级使用上与 Tim Düsterhus 存在分歧。
- 新增数组函数array_str_contains目标 PHP 8.7,围绕性能与 API 设计展开争论。
- Théo Attali 为 ISO‑8601 Zulu 时间格式建议常量或实例方法,关联即将发布的 PHP 8.6 日期时间 API。
这些讨论将直接影响 PHP 9 的语言特性走向,开发者可关注相应 RFC 进度,提前评估迁移影响。
#开发者 #工具 #PHP #RFC #PEAR #标识符 #数组函数 #日期时间
@DevToolboxHub