northwoods / broker
极其简单的PSR-15中间件分发器
3.0.0
2018-10-17 16:10 UTC
Requires
- php: >=7.1
- psr/http-server-middleware: ^1.0
Requires (Dev)
- eloquent/phony-phpunit: ^4.0
- eloquent/phpstan-phony: ^0.3.0
- phpstan/phpstan: ^0.10.3
- phpstan/phpstan-phpunit: ^0.10.0
- phpunit/phpunit: ^7.3
- squizlabs/php_codesniffer: ^3.3
Suggests
- northwoods/conditional-middleware: Execute middleware based on request conditions
- northwoods/lazy-middleware: Lazy load middleware from a container
README
Broker是一个极其简单的PSR-15中间件分发器。Broker实现了RequestHandlerInterface
和MiddlewareInterface
以提供最大灵活性。
安装
composer require northwoods/broker
用法
use Acme\Middleware; use Northwoods\Broker\Broker; /** @var \Psr\Http\Message\ServerRequestInterface */ $request = /* any server request */; // Use append() or prepend() to add middleware $broker = new Broker(); $broker->append(new Middleware\ParseRequest()); $broker->prepend(new Middleware\CheckIp()); /** @var \Psr\Http\Message\ResponseInterface */ $response = $broker->handle($request);
append(...$middleware)
将一个或多个中间件添加到栈的末尾。
prepend(...$middleware)
将一个或多个中间件添加到栈的开始。
handle($request)
作为请求处理器分发中间件栈。如果达到栈的末尾且没有生成响应,将抛出OutOfBoundsException
异常。
process($request, $handler)
作为中间件分发中间件栈。如果达到栈的末尾且没有生成响应,将调用$handler
。
建议的包
- 可以使用northwoods/conditional-middleware提供条件中间件执行。
- 可以使用northwoods/lazy-middleware提供懒加载中间件实例化。
- 可以使用http-interop/response-sender提供响应发送。