kapitanluffy/middlewarestack

在单个类中实现PSR-15 Middlewares

dev-master 2017-10-29 04:31 UTC

This package is auto-updated.

Last update: 2024-09-06 23:21:10 UTC


README

在单个类中实现PSR-15 Middlewares。

为什么?

正如提案中所定义的,中间件"处理"请求并返回响应。同样地,RequestHandlers"处理"请求并返回响应。这个包的想法是简化PSR-15提供的接口的目标。

安装
composer require kapitanluffy/middlewarestack
用法
use kapitanluffy\middleware\MiddlewareStack;
use Zend\Diactoros\ServerRequestFactory;

$innerStack = new MiddlewareStack(array(
    new Middlewares\Robots(false),
    new Middlewares\TrailingSlash(false)
));

$stack = new MiddlewareStack(array(
    new Middlewares\Whoops(),

    // Use another stack as middleware
    $innerStack,

    // Create an inner stack with arrays
    array(
        new Middlewares\ResponseTime(),
        new Middlewares\Uuid(),
    ),

    // Create closures as middlewares
    function ($request, $stack) {
        $response = $stack->handle($request);
        return $response->withHeader('X-Passed-MiddlewareClosure', 1);
    }
));

// let the middleware stack handle the request
$request = ServerRequestFactory::fromGlobals();
$response = $stack->handle($request);
中间件

您可以在这里找到中间件列表,或者通过实现MiddlewareInterface来创建自己的中间件。