PHP的异步I/O

2.0.1 2019-11-24 17:25 UTC

This package is not auto-updated.

Last update: 2024-09-14 23:20:39 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服务器。它定义了硬件控制接口(Pin,ShiftOut等)。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();