Minimalist PSR-15 middleware based request handler (dispatcher).
Install via Composer:
$ composer require jerowork/middleware-request-handler
Use with a PSR-7 request implementation, like Zend Diactoros.
use Jerowork\MiddlewareDispatcher\MiddlewareRequestHandler;
use Zend\Diactoros\Response;
use Zend\Diactoros\ServerRequestFactory;
// Setup a list of PSR-15 middlewares
$middlewares = [
new SomeMiddleware(),
new AnotherMiddleware(),
];
// Handle a PSR-7 server request to response by the request handler (PSR-15)
$response = (new MiddlewareRequestHandler($middlewares, new Response()))
->handle(ServerRequestFactory::fromGlobals());
// Output PSR-7 response with a response emitter implementation of your choice
(new Response\SapiEmitter())->emit($response);