notice | title | description | image | permalink | source | layout |
---|---|---|---|---|---|---|
This file is imported and can be edited at https://github.com/amphp/react-adapter/blob/master/README.md |
ReactPHP Compatibility |
Learn how to use any ReactPHP library and make it compatible with Amp. |
undraw/undraw_logistics.svg |
/react-adapter |
docs |
amphp/react-adapter
makes any ReactPHP library compatible with Amp v2.
{:.note}
If you're using AMPHP v3, have a look at
revolt/event-loop-adapter-react
instead.
This package can be installed as a Composer dependency.
composer require amphp/react-adapter
Everywhere where a ReactPHP library requires an instance of LoopInterface
, you pass ReactAdapter::get()
to run the ReactPHP library on Amp's event loop.
<?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);
});
You can also use the adapter to run ReactPHP apps on an Amp event loop implementation without relying on Amp's global event loop.
$loop = new Amp\ReactAdapter\ReactAdapter((new Amp\Loop\DriverFactory)->create());