OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
OpenSwoole 26.2.0 是一次重大版本更新,带来了 PHP 8.5 支持、原生 PHP Fiber 协程上下文、io_uring 事件驱动后端、协程内 Xdebug 断点调试、事件循环延迟指标等功能。 通过 PECL 安装: 或使用 Docker 镜像: OpenSwoole 26.2.0 完全兼容 PHP 8.5,支持管道操作符、URI 扩展、Clone With 等新特性。 新增基于 PHP 原生 运行时启用: 或通过 INI 配置: 启用 Fiber 上下文后,Xdebug 断点调试可在协程内正常工作。此前版本中"极其危险"的警告提示已被移除。 支持在运行时选择事件驱动后端。 新增常量: 新增基于 Linux io_uring 的事件驱动实现,使用 专用 io_uring 环形缓冲区处理异步文件操作(open、read、write、fstat、fsync、unlink、rename、mkdir、rmdir),替代线程池方案。不支持的操作用优雅回退至线程池。 通过 PHP 8.4+ 上,协程内的 将自定义 如需安装 OpenSwoole 或查看其他更新方式,请参考 安装文档 与 更新指南。 安装核心库:OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
升级方式
pecl install openswoole-26.2.0docker pull openswoole/openswoole:26.2-php8.5-alpine新特性
PHP 8.5 支持
PHP 原生 Fiber 协程上下文
zend_fiber API 的协程上下文后端,替代 Boost ASM 或 ucontext。该实现支持与 Xdebug、性能分析器及 Fiber 感知扩展的正确集成。Co::set(['use_fiber_context' => true]);openswoole.use_fiber_context=On协程内 Xdebug 断点调试
运行时选择事件驱动后端
Co::set(['reactor_type' => OPENSWOOLE_IO_URING]);OPENSWOOLE_EPOLL、OPENSWOOLE_KQUEUE、OPENSWOOLE_POLL、OPENSWOOLE_SELECT、OPENSWOOLE_IO_URINGio_uring 事件驱动后端
IORING_OP_POLL_ADD 作为 epoll 的替代方案。编译时需启用 --enable-io-uring(依赖 liburing)。内核 5.13+ 支持 multishot poll,旧内核自动回退。io_uring 异步文件 I/O 引擎
事件循环延迟指标
$server->stats() 实现实时事件循环延迟监控。按工作进程、任务进程(启用协程时)及 Reactor 线程(进程模式)暴露 event_loop_lag_ms、event_loop_lag_max_ms、event_loop_lag_avg_ms 指标。适用于检测阻塞操作导致的事件循环停滞。协程安全的 exit() 支持
exit() 调用会被拦截并抛出 openswoole_exit_exception,防止整个进程终止。HTTP 解析器迁移至 llhttp
openswoole_http_parser 替换为 llhttp 解析器,提升标准兼容性与性能。Bug 修复
OSW_FUNCTION_ALIAS 导致全局函数在反射中显示为类方法且返回类型损坏,已替换为正确的 PHP_FE/PHP_FALIAS 条目flock(LOCK_NB)现会在系统调用前正确检查进程内协程锁状态sched.h 前添加缺失的 _GNU_SOURCE 定义linux/futex.h 前添加缺失的 _GNU_SOURCE 定义破坏性变更
openswoole_*升级
composer require openswoole/core:26.2.0