amphp/react-adapter

适配器,使任何 ReactPHP 库与 Amp 兼容。

v2.1.0 2019-11-04 21:08 UTC

This package is auto-updated.

Last update: 2024-09-07 21:58:38 UTC


README

Stable License

amphp/react-adapter 使任何 ReactPHP 库与 Amp v2 兼容。

注意 如果您正在使用 AMPHP v3,请查看 revolt/event-loop-adapter-react

安装

此包可以作为 Composer 依赖项安装。

composer require amphp/react-adapter

用法

在任何需要 LoopInterface 实例的 ReactPHP 库中,您可以通过传递 ReactAdapter::get() 来在 Amp 的事件循环上运行 ReactPHP 库。

<?php

require 'vendor/autoload.php';

use Amp\Loop;
use Amp\ReactAdapter\ReactAdapter;

Loop::run(function () {
    $app = function ($request, $response) {
        $response->writeHead(200, array('Content-Type' => 'text/plain'));
        $response->end("Hello World\n");
    };

    $socket = new React\Socket\Server(ReactAdapter::get());
    $http = new React\Http\Server($socket, ReactAdapter::get());

    $http->on('request', $app);
    echo "Server running at http://127.0.0.1:1337\n";

    $socket->listen(1337);
});

您还可以使用适配器在不依赖 Amp 的全局事件循环的情况下,在 Amp 事件循环实现上运行 ReactPHP 应用。

$loop = new Amp\ReactAdapter\ReactAdapter((new Amp\Loop\DriverFactory)->create());