PSR compatibility adapters for Openswoole
Via Composer
$ composer require compwright/swoole-psr7-compatuse Compwright\SwoolePsr7Compat\SwoolePsrRequestFactory;
use Compwright\SwoolePsr7Compat\SwoolePsrHandler;
use Nyholm\Psr7Server\ServerRequestCreator;
$serverRequestCreator = new ServerRequestCreator(
// Pass in the factories here for your desired PSR-7 implementation
new \Laminas\Diactoros\ServerRequestFactory(),
new \Laminas\Diactoros\UriFactory(),
new \Laminas\Diactoros\UploadedFileFactory(),
new \Laminas\Diactoros\StreamFactory()
);
$requestFactory = new SwoolePsrRequestFactory($serverRequestCreator);
$handler = new SwoolePsrHandler($requestFactory);
$server = new Swoole\HTTP\Server('0.0.0.0', 9501);
// $app is any Psr\Http\Server\RequestHandlerInterface
$server->on('request', $handler($app));
$server->start();