zer0php / middleware
Middleware Library
1.0.11
2019-01-27 16:25 UTC
Requires
- php: >= 7.1
- psr/container: ^1.0
- psr/http-server-middleware: ^1.0
Requires (Dev)
- infection/infection: ^0.10.5
- php-coveralls/php-coveralls: ^2.1
- phpunit/phpunit: ^7.3
This package is auto-updated.
Last update: 2025-03-28 06:06:52 UTC
README
Usage:
use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Server\RequestHandlerInterface; use Zero\Middleware\CallableMiddleware; use Zero\Middleware\LazyLoadingMiddleware; use Zero\Middleware\PathMiddleware; use Zero\Middleware\Pipe\MiddlewarePipe; $testMiddleware = new CallableMiddleware(function(ServerRequestInterface $request, RequestHandlerInterface $handler) { return $handler->handle($request->withAttribute('name', 'Test')); }); /* @var $container \Psr\Container\ContainerInterface */ $container = new Container([ 'testMiddleware' => $testMiddleware ]); $lazyMiddleware = new LazyLoadingMiddleware($container, 'testMiddleware'); $pathCallableMiddleware = new CallableMiddleware(function(ServerRequestInterface $request, RequestHandlerInterface $handler) { /* @var $response \Psr\Http\Message\ResponseInterface */ $response = new Response('Hello ' . $request->getAttribute('name')); return $response; }); $pathMiddleware = new PathMiddleware('/test', $pathCallableMiddleware); $pipe = new MiddlewarePipe(); $pipe->push($lazyMiddleware); $pipe->push($pathMiddleware); /* @var $serverRequest ServerRequestInterface */ $serverRequest = new ServerRequest('GET', '/test'); echo $pipe->handle($serverRequest)->getBody(); //Hello Test
Cli Usage:
//script.php test test2 -a --arg "simple value" --arg2="simple value2" use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Server\RequestHandlerInterface; use Zero\Middleware\ArgumentParserMiddleware; use Zero\Middleware\CallableMiddleware; use Zero\Middleware\PathMiddleware; use Zero\Middleware\Pipe\MiddlewarePipe; $pathCallableMiddleware = new CallableMiddleware(function(ServerRequestInterface $request, RequestHandlerInterface $handler) { $params = $request->getQueryParams(); //['a' => '', 'arg' => 'simple value', 'arg2' => 'simple value2'] return new Response($params['arg']); }); $pathMiddleware = new PathMiddleware('/test/test2', $pathCallableMiddleware); $pipe = new MiddlewarePipe(); $pipe->push(new ArgumentParserMiddleware()); $pipe->push($pathMiddleware); /* @var $serverRequest ServerRequestInterface */ $serverRequest = ServerRequest::fromGlobals(); echo $pipe->handle($serverRequest)->getBody(); //simple value