Skip to content

revoltphp/event-loop-adapter-react

Repository files navigation

react-adapter

Build Status Coverage Status Stable License

amphp/react-adapter makes any ReactPHP library compatible with Revolt's event loop and v3 of Amp.

Installation

composer require amphp/react-adapter

Usage

Everywhere where a ReactPHP library requires an instance of LoopInterface, you just pass ReactAdapter::get() to run the ReactPHP library on Revolt event loop.

<?php

require 'vendor/autoload.php';

use Revolt\EventLoop;
use Amp\ReactAdapter\ReactAdapter;

EventLoop::defer(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);
});

You can also use the adapter to run ReactPHP apps on an Revolt event loop implementation without relying on Revolt's global event loop.

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

Documentation

Documentation is available on amphp.org/react-adapter.

Notes

If you need to convert an Amp promise to a ReactPHP promise, check the umbri/amp-react-interop package.

About

Makes any ReactPHP based library run on top of the Revolt event loop.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Languages