设备 / 调度
一个兼容 HTTP Interop 的中间件调度器
2.0.0
2018-01-26 14:37 UTC
Requires
- php: >=7.0
- psr/http-server-middleware: ^1.0
Requires (Dev)
- eloquent/liberator: ^2.0
- eloquent/phony-phpunit: ^3.0
- phpunit/phpunit: ^6.0
README
在 Equip 中的 HTTP Interop 兼容中间件调度器。尝试符合 PSR-1、PSR-2、PSR-4、PSR-7 和 PSR-15。
受到 ircmaxwell 的 Tari 设计的极大影响。
更多信息,请参阅 文档。
安装
composer require equip/dispatch
用法
MiddlewareCollection
是一个中间件的容器,作为入口点。它接受两个参数
- 一个包含
$middleware
的数组,这些必须是服务器中间件的实例。 - 一个可调用的
$default
,它作为集合的终止器并返回一个空响应。
一旦集合准备就绪,就可以用服务器请求进行调度,并将返回的响应输出。
示例
use Equip\Dispatch\MiddlewareCollection; // Any implementation of PSR-15 MiddlewareInterface $middleware = [ new FooMiddleware(), // ... ]; // Default handler for end of collection $default = function (ServerRequestInterface $request) { // Any implementation of PSR-7 ResponseInterface return new Response(); }; $collection = new MiddlewareCollection($middleware); // Any implementation of PSR-7 ServerRequestInterface $request = ServerRequest::fromGlobals(); $response = $collection->dispatch($request, $default);
嵌套集合
MiddlewareCollection
还实现了 MiddlewareInterface
以允许集合嵌套
use Equip\Dispatch\MiddlewareCollection; // Any implementation of PSR-15 MiddlewareInterface $middleware = [ new FooMiddleware(), // A nested collection new MiddlewareCollection(...), // More middleware new BarMiddleware(), // ... ]; $collection = new MiddlewareCollection($middleware); // HTTP factories can also be used $default = [$responseFactory, 'createResponse']; $request = $serverRequestFactory->createRequest($_SERVER); $response = $collection->dispatch($request, $default);