
OpenSwoole 26.2.0 是一个主要版本,支持 PHP 8.5、本机 PHP Fiber 协程上下文、io_uring 反应器后端、在协程中进行 Xdebug 逐步调试、事件循环延迟指标等。
您现在可以升级到 OpenSwoole v26.2.0:
pecl install openswoole-26.2.0
或使用 Docker 镜像:
docker pull openswoole/openswoole:26.2-php8.5-alpine
在 Docker Hub 上查找更多 OpenSwoole Docker 镜像。
OpenSwoole 26.2.0 完全兼容 PHP 8.5,包括管道运算符、URI 扩展、Clone With 等新功能。
新的协程上下文后端使用 PHP 的本机 zend_fiber API,而不是 Boost ASM 或 ucontext。这使得与 Xdebug、性能分析器和支持 Fiber 的扩展正确集成。请参阅 Fiber 上下文文档以获取示例。在运行时配置:
Co::set(['use_fiber_context' => true]);
或通过 INI:openswoole.use_fiber_context=On
启用 Fiber 上下文时,Xdebug 逐步调试现在可以在协程中正确工作。已移除旧的“极度危险”警告。
在运行时选择事件反应器后端。请参阅反应器类型文档以获取详细信息和示例。
Co::set(['reactor_type' => OPENSWOOLE_IO_URING]);
新常量:OPENSWOOLE_EPOLL、OPENSWOOLE_KQUEUE、OPENSWOOLE_POLL、OPENSWOOLE_SELECT、OPENSWOOLE_IO_URING
新的事件反应器使用 Linux io_uring 与 IORING_OP_POLL_ADD,作为 epoll 的直接替代品。使用 --enable-io-uring 启用(需要 liburing)。在内核 5.13+ 上支持多射击轮询,并在较旧内核上自动回退。请参阅 io_uring 文档以获取设置和示例。
专用的 io_uring 环用于异步文件操作(打开、读取、写入、fstat、fsync、unlink、重命名、mkdir、rmdir),取代线程池。不支持的操作会优雅地回退到线程池。请参阅 io_uring 异步文件 I/O 文档以获取示例。
通过 $server->stats() 实时监控事件循环延迟。每个 worker、任务 worker(启用协程时)和反应器线程(进程模式)暴露 event_loop_lag_ms、event_loop_lag_max_ms 和 event_loop_lag_avg_ms。用于检测阻塞操作导致事件循环停滞。请参阅事件循环延迟指标文档以获取监控和警报示例。
在 PHP 8.4+ 上,协程中的 exit() 调用会被拦截并抛出 openswoole_exit_exception,而不是终止整个进程。请参阅协程安全的 exit() 文档以获取示例。
用 llhttp 解析器替换自定义的 openswoole_http_parser,以提高标准合规性和性能。
如果您需要安装 OpenSwoole 或查看其他更新方法,请查看安装文档以及如何更新 Open Swoole。
安装核心库:
composer require openswoole/core:26.2.0