当前位置: 首页 > news >正文

PHP 基金会宣布:Streams 现代化 将引入事件循环与异步新能力

PHP 基金会宣布:Streams 现代化 将引入事件循环与异步新能力

得益于德国政府支持的开源基础设施机构 Sovereign Tech Agency (STA) 的投资,PHP 基金会正在为 PHP 最古老且至关重要的子系统之一——Streams——推进现代化改造。本文整理了基金会公布的计划,并解释这些变革对 PHP 生态的重要性。

总结就是一句话,PHP Stream 要加入事件循环了。

原文链接 PHP 基金会宣布:Streams 现代化 将引入事件循环与异步新能力

什么是 PHP Streams?

在讨论具体改进之前,先回顾一下 Streams 的概念以及它的意义。
自 2001 年左右引入以来,PHP Streams 提供了一种统一处理文件与网络 I/O 的方式,使文件、套接字或内存等不同来源的数据都能通过一致的 API 与同一组函数访问。
随着时间推移,PHP Streams 被证明既强大又灵活,但部分实现没有跟上现代用例、性能预期和系统能力的演进。本次计划旨在让 Streams 更快、更安全,也更易于为现代 PHP 应用扩展。
整个工作范围被划分为四个子项目。

性能与稳定性提升

这一部分关注的是改进 PHP Streams 在复制与定位(seeking)时的性能和一致性。
Stream 复制仍有优化余地。比如复制大文件或处理网络传输时,可以借助 Linux 上的 io_uring 等异步 I/O 机制加速。同时还要避免 memory-mapped 文件可能引发的崩溃。因此目标是逐步淘汰 mmap 的使用,并在即将推出的 I/O API 中引入新的复制 API,在可用的平台上调用 io_uring 或其他系统特性。
当前 filtered streams 的寻址存在问题,导致行为出现不一致。开发者在使用 filters 时,经常会遇到无法回到开头或跳过数据的限制。
计划将引入新的寻址 filter API,让可寻址的 stream 支持 seeking,并在不支持的情况下明确禁止。例如,回到开头应该始终可行,但并非所有 filter 都支持任意位置的寻址;有些可以,有些不行,因此基金会希望通过全新的内部 API 来表达这些差异。

错误处理与监控增强

这一部分主要聚焦新的错误报告机制及更多 hooks。目前,很多底层 I/O 错误在用户态的呈现并不一致。目标是标准化 Streams 的错误报告方式,便于开发者调试。
新的错误报告思路是:在更完善的错误处理框架下,将错误收集并回传给用户态。基金会将对现有错误进行封装,并提供更丰富的上下文,帮助开发者定位问题。
至于 hooks,则会通过特殊的 polling wrapper 支持 async 代码,使部分阻塞操作(尤其是 file IO)能够被替换。此改动主要面向内部实现,如果性能允许,团队也会评估是否把部分 hooks 暴露给用户态。

网络与套接字改进

这一部分集中在引入全新的 polling API、改进 stream_select,并解决套接字相关的问题。

现代网络应用高度依赖可扩展的事件处理能力。新的 polling API 将引入 epoll、kqueue 等现代机制,帮助 PHP 更高效地管理多路 I/O Streams。

目前用户态只有 select 可用,而它在性能和扩展性上的瓶颈早已显现。这次现代化将直接惠及实现 async networking 或事件驱动 I/O 的框架与扩展。

这一 API 的主要目标,是在核心内部建立一套可复用的接口,既能服务于 PHP 内部的各种任务,也能作为未来 async IO API 的基础(或者备用方案)。

团队还会扩展 stream_select 的用法,让它更好地支持 filtered streams 的 polling,并为能够提供额外数据的外部对象暴露 API,与新的 polling API 的能力保持一致。为此需要适度重构,部分逻辑也可能与新 API 共享。

此外,计划对套接字进行多项改进。团队计划新增 socket context options,提供更灵活的配置能力;修复若干套接字处理问题,并强化 file descriptor 相关的实用工具。

安全与 TLS 增强

另一项重要工作聚焦在处理加密 Streams 的 OpenSSL 扩展。

团队准备重构当前并不完善、限制较多的 async 处理逻辑。完成后,将能更清楚地告知用户态需要何种 polling 动作,例如该 stream 应该等待读操作还是写操作。

此外,改进计划也强化了 TLS 1.3 支持,允许选择特定的 cipher suites,并整合 TLS Sessions、PSK(Pre-Shared Key)以及 early data(0-RTT)。

为支撑这些改动,基金会团队正在开发新的 TLS 1.3 PHP 测试库,便于自定义协议流程,并测试 TLS 1.3 的诸多特性,包括异步行为。

影响:对 PHP 生态与异步框架的启示

这些举措将共同推动 PHP 的 I/O 层在未来十年持续服务于 Web 与 CLI 的发展需求。
相关工作已经在 2025 年启动,并将持续推进至 2026 年。PHP Foundation 会通过官方更新、PHP internals 讨论以及 RFC 持续公开阶段性成果。

对更广泛的 PHP 生态而言,这轮 Streams 现代化不仅改善了底层 I/O 能力,也为异步框架铺平了道路。像 workerman/ReactPHP 这样依赖持续连接与事件循环的常驻内存框架,将能借助新的 polling API 进一步降低上下文切换成本,并在高并发场景中获得更稳定的资源利用率。随着 Streams 层统一错误处理、权限控制与 TLS 能力,也期待更多基于这些 API 的扩展与框架出现,在 WebSocket、RPC、物联网等实时业务里释放新一轮性能潜力。

http://www.jsqmd.com/news/28962/

相关文章:

  • 2025年知名的海运出口包装袋TOP品牌厂家排行榜
  • 2025 年 11 月回转式风机厂家最新推荐,技术实力与市场口碑深度解析
  • 2025年评价高的过山车游乐设施热门厂家推荐榜单
  • 2025年比较好的筒子纱染色机厂家最新实力排行
  • 2025 年 11 月回转式风机厂家最新推荐,精准检测与稳定性能深度解析
  • 2025年比较好的柔性瓷砖胶最新TOP排名厂家
  • 2025年比较好的货架支架铝型材深加工厂家推荐及选择参考
  • 2025 年 11 月废气处理厂家最新推荐,聚焦跨平台能力与售后体系的实用指南
  • 油猴(tampermonkey)脚本下载及安装使用教程,超简单安装油猴教程
  • 2025年评价高的超高压均质机厂家最新热销排行
  • 2025年靠谱的卡车刹车盘TOP实力厂家推荐榜
  • 2025年知名的硫化TAIC交联剂厂家最新推荐权威榜
  • 笔记本出厂自带的正版Windows和office可以迁移到其他电脑吗?附教程
  • 2025年热门的电视柜功能五金厂家最新权威实力榜
  • 2025年评价高的欧式同步隐藏轨高评价厂家推荐榜
  • 2025年质量好的斗式提升机厂家推荐及选择指南
  • 2025 年 11 月废气处理厂家最新推荐,技术实力与市场口碑深度解析
  • 2025年知名的西安dn40镀锌钢管热门厂家推荐榜单
  • 精通射频电路设计:走进无线通信的核心
  • 2025年口碑好的衣柜阻尼托底轨厂家推荐及采购指南
  • 2025年质量好的珍珠棉厂家推荐及选择指南
  • Hive - 如何导出建表语句?
  • 2025年靠谱的FFU龙骨厂家最新权威实力榜
  • 2025年比较好的数控精密滚丝机厂家最新热销排行
  • 2025年知名的耐高温吨袋实力厂家TOP推荐榜
  • 2025年口碑好的管链输送机厂家推荐及选购参考榜
  • 2025年评价高的大跨距电缆桥架品牌厂家排行榜
  • 2025 年 11 月瑜伽服裤厂家最新推荐,精准检测与稳定性能深度解析
  • 2025年热门的自动送针铆钉机厂家最新用户好评榜
  • 2025年评价高的卫浴缓冲隐藏轨厂家最新用户好评榜