stratify / http
PSR-7 和 PSR-15 的 HTTP 中间件
0.6.0
2020-08-02 09:03 UTC
Requires
- php: >=7.4
- laminas/laminas-diactoros: ^2.0
- laminas/laminas-httphandlerrunner: ^1.1
- psr/http-message: ^1.0
- psr/http-server-middleware: ^1.0
Requires (Dev)
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2024-08-29 03:26:09 UTC
README
基于 PSR-7 和 Diactoros 构建
- PSR-15
- 中间件
composer require stratify/http
中间件
中间件可以是 Psr\Http\Server\MiddlewareInterface
的一个实例
class MyMiddleware implements \Psr\Http\Server\MiddlewareInterface { public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface { return new Response(...); } } $middleware = new MyMiddleware;
或者一个简单的可调用对象,允许使用闭包快速编写中间件
$middleware = function(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface { return new Response(...); }
中间件管道
中间件管道允许我们将中间件按顺序连接起来执行。它类似于在命令行中使用管道(|)操作符。
值得注意的是,管道 也是一个中间件,这意味着它可以嵌套或与其他任何中间件组合。
用法
$middleware = new Pipe([ new Middleware1, new Middleware2, // ... ]); // Run $response = $middleware->process($request, $handler);
管道将首先执行 Middleware1
。如果该中间件调用 $next
,则执行 Middleware2
。可以连接无限数量的中间件。
如果您不需要为管道使用 $handler
参数,则可以使用 LastHandler
类
$response = $middleware->process($request, new \Stratify\Http\Middleware\LastHandler);