Middleware Dispatcher
, (*1)
The package is a flexible PSR-15 middleware dispatcher for PSR-7 request message that help to create middlewares and dispatch., (*2)
Installation
Install via composer, (*3)
composer require slince/middleware
Quick example
$dispatcher = new Slince\Middleware\Dispatcher([$middleware1, $middleware2]);
$response = $dispatcher->process(Zend\Diactoros\ServerRequestFactory::fromGlobals());
var_dump($response instanceof Psr\Http\Message\ResponseInterface);
Usage
Add middleware
Add PSR-15 middlewares to the queue, (*4)
use Psr\Http\Message\ServerRequestInterface;
use Interop\Http\Server\MiddlewareInterface;
use Interop\Http\Server\RequestHandlerInterface;
use Zend\Diactoros\Response;
class MyMiddleware implements MiddlewareInteface
{
public function process(ServerRequestInterface $request, RequestHandlerInterface $next)
{
$response = new Response();
$response->getBody()->write('hello world');
return $response;
}
}
$dispatcher = new Slince\Middleware\Dispatcher([
new MyMiddleware()
]);
Or add a callable function directly, (*5)
$dispatcher->push(function(ServerRequestInterface $request, RequestHandlerInterface $next){
return $delegate->process($request);
});
Dispatch
try {
$response = $dispatcher->process(Zend\Diactoros\ServerRequestFactory::fromGlobals());
} catch (Slince\Middleware\Exception\MissingResponseException $exception) {
//...
}
A MissingResponseException will be thrown if the middleware did not return a invalid response or the queue was exhausted, (*6)
License
The MIT license. See MIT, (*7)