async-interop/event-loop

一个用于互操作的事件循环接口。

v0.5.0 2017-01-05 10:19 UTC

README

本规范的目的是提供事件循环实现的通用接口。这使得不同供应商的库和组件可以在事件驱动架构中运行,并共享一个通用的事件循环。

当前状态

该项目目前处于暂停状态,暂时被视为失败。将来可能会重新考虑。当前状态下的规范已合并到 Amp 中。ReactPHP 和 Amp 之间的互操作性将通过适配器而不是通用接口来解决。Icicle 已被弃用,其部分内容已合并到 Amp 库中。

为什么这么做?

某些编程语言,如 JavaScript,具有本地的原生事件循环。这使得包供应商可以轻松创建使用此原生事件循环的异步软件。尽管 PHP 历史上是一个同步编程环境,但仍然可以使用异步编程技术。使用这些技术,包供应商已经创建了成功的事件循环实现。

然而,由于这些事件循环实现来自包供应商,目前尚无法创建独立于底层事件循环实现的驱动软件组件。通过创建事件循环的通用接口,这种类型的互操作性将变得可能。

目标

此接口暴露的功能应包括以下能力:

  • 监视输入流以获取可用数据
  • 监视输出流以执行非阻塞写操作的能力
  • 运行单次和周期性定时器
  • 监听信号
  • 延迟执行可调用项

实现

您可以在 Packagist 上找到 可用的实现

兼容的包

您可以在 Packagist 上找到 兼容的包

贡献者