async-interop / event-loop
一个用于互操作的事件循环接口。
v0.5.0
2017-01-05 10:19 UTC
Requires
- php: >=5.5.0
Requires (Dev)
- jakub-onderka/php-console-highlighter: ^0.3.2
- jakub-onderka/php-parallel-lint: ^0.9.2
- phpunit/phpunit: ^4|^5
This package is not auto-updated.
Last update: 2024-09-14 19:31:01 UTC
README
本规范的目的是提供事件循环实现的通用接口。这使得不同供应商的库和组件可以在事件驱动架构中运行,并共享一个通用的事件循环。
当前状态
该项目目前处于暂停状态,暂时被视为失败。将来可能会重新考虑。当前状态下的规范已合并到 Amp 中。ReactPHP 和 Amp 之间的互操作性将通过适配器而不是通用接口来解决。Icicle 已被弃用,其部分内容已合并到 Amp 库中。
为什么这么做?
某些编程语言,如 JavaScript,具有本地的原生事件循环。这使得包供应商可以轻松创建使用此原生事件循环的异步软件。尽管 PHP 历史上是一个同步编程环境,但仍然可以使用异步编程技术。使用这些技术,包供应商已经创建了成功的事件循环实现。
然而,由于这些事件循环实现来自包供应商,目前尚无法创建独立于底层事件循环实现的驱动软件组件。通过创建事件循环的通用接口,这种类型的互操作性将变得可能。
目标
此接口暴露的功能应包括以下能力:
- 监视输入流以获取可用数据
- 监视输出流以执行非阻塞写操作的能力
- 运行单次和周期性定时器
- 监听信号
- 延迟执行可调用项
实现
您可以在 Packagist 上找到 可用的实现。
兼容的包
您可以在 Packagist 上找到 兼容的包。