The simplest PSR-15 complaint middleware runner.
The PSR-15 providers a standard for recommendations that defines the interface for server middleware-component compatible with PSR-7 HTTP Messages.
There are a few of another PSR-15 compatible dispatchers. Middleman is the best known. Also there are a lot of PSR-15 middleware-components collected in the middlewares/psr15-middlewares.
Via Composer:
$ composer require ztsu/reacon
<?php
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\MiddlewareInterface;
use Psr\Http\Server\RequestHandlerInterface;
class CreateRequestMiddleware implements MiddlewareInterface
{
public function process(
ServerRequestInterface $request,
RequestHandlerInterface $handler
): ResponseInterface {
return new Zend\Diactoros\Response();
}
}
class HelloMiddleware implements MiddlewareInterface
{
public function process(
ServerRequestInterface $request,
RequestHandlerInterface $handler
): ResponseInterface {
$response = $handler->handle($request);
$response->getBody()->write("Hello, World!");
return $response;
}
}
$reacon = new Ztsu\Reacon\Reacon(
new HelloMiddleware(),
new CreateRequestMiddleware()
);
$request = Zend\Diactoros\ServerRequestFactory::fromGlobals();
$response = $reacon->handle($request);
(new Zend\Diactoros\Response\SapiEmitter)->emit($response);
MIT.