stratify/http

PSR-7 和 PSR-15 的 HTTP 中间件

0.6.0 2020-08-02 09:03 UTC

This package is auto-updated.

Last update: 2024-08-29 03:26:09 UTC


README

基于 PSR-7 和 Diactoros 构建

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);