Dazzle 异步 I/O 事件循环。

v0.5.0-alpha 2017-06-24 18:49 UTC

This package is not auto-updated.

Last update: 2024-09-15 03:18:57 UTC


README

Build Status Code Coverage Code Quality Latest Stable Version Latest Unstable Version License

注意: 该仓库是 Dazzle 项目的一部分 Dazzle 项目 - PHP 的下一代库。项目的目的是为 PHP 开发者提供一套完整的工具来构建功能性的异步应用程序。请确保您仔细阅读附带的 README,这将确保您会对它的易用性和强大功能感到惊讶。同时,您可能还想查看我们Dazzle 仓库中的其他异步库,以全面了解 Dazzle 的体验。


描述

Dazzle Loop 是一个组件,它为在单个线程或进程中使用单个或多个循环编写 PHP 的异步代码提供抽象层。

特性亮点

Dazzle Loop 特性

  • 用于在单个线程或进程中编写异步代码的接口
  • 文件描述符轮询
  • 一次性定时器和周期性定时器
  • 延迟执行回调
  • 支持基于 StreamSelect 的循环
  • 支持基于 LibEvent 的循环,
  • 支持基于 LibEv 的循环,
  • 支持基于 ExtEvent 的循环,
  • 支持组合多个循环并从单个包装器中管理它们
  • 支持在多个执行流程之间切换
  • ReactPHP 事件循环适配器
  • ReactPHP 兼容性
  • ...等等。

提供的示例

快速入门

此示例展示了使用 loop 实现非阻塞时钟的方法

$loop = new Loop();

$loop->addPeriodicTimer(1, function() {
    printf("\rCurrent clock: %s", date('Y-m-d H:i:s'));
});

$loop->start();

其他

其他示例可以在 example 目录中找到。以下是提供的示例列表,作为参考和首选阅读顺序

如果上述任何示例让您感到困惑,请参阅 tests 目录。

比较

本节包含许多用户请求的 Dazzle 与 React 的比较。如果您想知道为什么创建了本节,请参阅 作者的说明

性能


关于此基准的详细信息可以在 benchmark-on.phpbenchmark-react.php 文件中找到。

内存分配效率


关于此基准的详细信息可以在 benchmark-once.phpbenchmark-react.php 文件中找到。

详细信息

要求

Loop 需要

  • PHP-5.6 或 PHP-7.0+,
  • UNIX 或 Windows 操作系统。

安装

要安装此库,请确保已安装 composer,然后运行以下命令

$> composer require dazzle-php/loop

测试

可以通过以下方式运行测试

$> vendor/bin/phpunit -d memory_limit=1024M

版本控制

Dazzle库的版本控制描述在Dazzle项目的索引存储库的版本控制章节中。请参阅那里以获取关于该主题的详细信息。

贡献

感谢您考虑为这个存储库做出贡献!

许可证

Dazzle Loop是开源软件,采用MIT许可证

"一切皆有可能。不可能的只是需要更长的时间。" —— 丹·布朗