revolt/event-loop

为并发PHP应用程序提供坚固的事件循环。

v1.0.6 2023-11-30 05:34 UTC

This package is auto-updated.

Last update: 2024-09-19 23:05:06 UTC


README

Revolt是为并发PHP应用程序提供坚固的事件循环。常规PHP应用程序的大部分时间都在等待I/O。虽然PHP是单线程的,但可以使用协作多任务处理来允许并发,通过使用等待时间来做不同的事情。

PHP的传统同步执行流程易于理解。一次只做一件事。如果你查询数据库,你发送查询并等待数据库服务器的响应。一旦你得到响应,你就可以开始做下一件事。

Amp、ReactPHP和其他库已经为PHP提供了很长时间的协作多任务处理。然而,它们的事件驱动特性与许多现有接口不兼容,需要不同的思维模式。PHP 8.1内置了fibers,这提供了协作多线程。调用可以是同步的,无需承诺或回调,同时仍然允许非阻塞I/O。

每个使用协作多任务处理的应用程序都需要一个单独的调度器(也称为事件循环),这个包提供了这个调度器。Revolt是结合了Amp和ReactPHP事件循环实现多年的经验的结果。然而,它不是一个完整的框架,用于编写并发PHP应用程序,而只是提供了一个必要的公共基础。可以在其之上构建不同的(强烈)有偏见的库,并且Amp和ReactPHP将继续共存。

安装

人们可能会惊讶地发现,PHP标准库已经包含了我们编写事件驱动和非阻塞应用程序所需的一切。此包可以作为PHP 8.1及更高版本上的Composer依赖项安装。

composer require revolt/event-loop

具有许多并发文件描述符的应用程序需要扩展之一。

→  查看文档
→  查看示例

版本

revolt/event-loop遵循semver语义版本规范。

许可证

MIT许可证(MIT)。请参阅LICENSE文件以获取更多信息。