PHP 的非阻塞 I/O

2.0.1 2019-11-24 17:25 UTC

This package is auto-updated.

Last update: 2024-08-26 01:27:54 UTC


README

Build Status License Total Downloads Latest Stable Version Latest Unstable Version

许可: MIT 许可证

版权: 2013-2019 Thomas Weinert thomas@weinert.info

Carica Io 是一系列用于非阻塞 I/O 的实验性 PHP 类和脚本。它为使用 Firmata (Arduino) 和 GPIO (Raspberry PI) 进行硬件控制提供了基本构建块。

基本功能

该仓库提供了非阻塞 I/O 所需的 API。包括简单的事件循环和事件发射器。循环实现未进行性能优化。然而,可以使用适配器与 ReactPHP 或 AMPHP 一起使用。

它包含一个(不完整)的 HTTP 服务器,应该足以用于第一步。它支持 GET 请求和 WebSocket 连接。

相关项目

           +---------------+
           |  Carica\Chip  |
           +-------+-------+
                   ^
                   |
        +----------+----------+
        |                     |
+-------+-------+    +--------+-------+
|  Carica\GPIO  |    | Carica\Firmata |
+-------+-------+    +--------+-------+
        ^                     ^
        |                     |
        +----------+----------+
                   |
           +-------+-------+
           |   Carica\Io   |
           +---------------+

Carica/Io 提供了基于事件编程的类和简单的 Web 服务器。它定义了硬件控制(引脚、移位输出等)的接口。 Carica/Firmata 是一个用于 Firmata 协议的客户端库,它允许通过串行或网络连接控制 Arduino 板。 Carica/GPIO 使用文件系统或 WiringPI 库实现了 Raspberry PI 中的 GPIO。

Carica/Chip 实现了硬件对象的类。如 LED、RGB-LED、伺服电机等。

用法

您需要从工厂获取循环实例,附加事件并运行它。

$loop = Carica\Io\Event\Loop\Factory::get();
$loop->setInterval(
  static function () {
    static $i = 0;
    echo $i++;
  },
  1000
);
$loop->run();