phoole / middleware
Slim and simple PSR-15 compliant middleware runner library for PHP
1.1.0
2019-11-19 06:46 UTC
Requires
- php: >=7.2.0
- phoole/base: ^1.0.16
- psr/http-server-middleware: ^1.0.1
Requires (Dev)
- guzzlehttp/psr7: 1.*
- phpunit/phpunit: ^8
README
Slim and simple PSR-15 compliant middleware runner library for PHP.
Installation
Install via the composer
utility.
composer require "phoole/middleware"
or add the following lines to your composer.json
{ "require": { "phoole/middleware": "1.*" } }
Features
-
Able to use PSR-15 compliant middlewares out there.
-
Able to use a middleware queue (a group of middlewares) as a generic middleware in another(or the main) queue.
Usage
Create the middleware queue, then process all the middlewares.
use Phoole\Middleware\Queue; use GuzzleHttp\Psr7\Response; use GuzzleHttp\Psr7\ServerRequest; // create middleware queue with 404 response as default(last) $mws = new Queue(new Response(404)); // add middlewares $mws->add( new LoggerMiddleware(), new DispatcherMiddleware() ); // process the request with middlewares $response = $mws->handle(new ServerRequest('GET', 'http://bingo.com/get'));
Advanced
-
Phoole\Middleware\Queue
implements thePsr\Http\Server\MiddlewareInterface
, so the queue itself can be used as a generic middleware.// subqueue may need no default response if not the last in the main queue $subQueue = (new Queue())->add( new ResponseTimeMiddleware(), new LoggingMiddleware() ); // main middleware queue $mws = (new Queue(new Response(404)))->add( $subQueue, new DispatcherMiddleware() );
Testing
$ composer test
Dependencies
-
PHP >= 7.2.0
-
phoole/base 1.*
-
A PSR-7 HTTP message implementation, such as guzzle/psr7.