ellipse/handlers

Psr-15 请求处理器装饰器

1.1.1 2018-03-19 15:44 UTC

This package is auto-updated.

Last update: 2024-08-25 23:52:38 UTC


README

本软件包提供了 Psr-15 请求处理器装饰器。

要求 php >= 7.0

安装 composer require ellipse/handlers

运行测试 ./vendor/bin/kahlan

后备请求处理器

请求处理器装饰器的常见起点是当其 ->handle() 方法被调用时返回一个默认响应。本软件包提供了一个实现此逻辑的 Ellipse\Handlers\FallbackRequestHandler 类。

<?php

namespace App;

use Ellipse\Handlers\FallbackRequestHandler;

// Get some fallback Psr-7 response, here with a 404 status code.
$response = some_psr7_response_factory()->withStatus(404);

// Create a fallback request handler returning the response.
$fallback = new FallbackRequestHandler($response);

// The response is returned.
$response = $fallback->handle($request);

带中间件的请求处理器

本软件包提供了一个允许将中间件包装在请求处理器周围的 Ellipse\Handlers\RequestHandlerWithMiddleware 类。

<?php

namespace App;

use Ellipse\Handlers\FallbackRequestHandler;
use Ellipse\Handlers\RequestHandlerWithMiddleware;

// create Psr-15 middleware and request handler.
$middleware = new SomeMiddleware;
$handler = new FallbackRequestHandler($response);

// Wrap the middleware around the request handler.
$decorated = new RequestHandlerWithMiddleware($handler, $middleware);

// The request goes through the middleware then hit the fallback request handler.
$response = $decorated->handle($request);

带中间件栈的请求处理器

本软件包提供了一个允许以 LIFO 顺序将多个中间件包装在请求处理器周围的 Ellipse\Handlers\RequestHandlerWithMiddlewareStack 类。

<?php

namespace App;

use Ellipse\Handlers\FallbackRequestHandler;
use Ellipse\Handlers\RequestHandlerWithMiddlewareStack;

// create Psr-15 middleware and request handler.
$middleware1 = new SomeMiddleware1;
$middleware2 = new SomeMiddleware2;
$handler = new FallbackRequestHandler($response);

// Wrap the middleware around the request handler in LIFO order.
$decorated = new RequestHandlerWithMiddlewareStack($handler, [
    $middleware2,
    $middleware1,
]);

// The request goes through middleware1, middleware2, then hit the fallback request handler.
$response = $decorated->handle($request);

带中间件队列的请求处理器

本软件包提供了一个允许以 FIFO 顺序将多个中间件包装在请求处理器周围的 Ellipse\Handlers\RequestHandlerWithMiddlewareQueue 类。

<?php

namespace App;

use Ellipse\Handlers\FallbackRequestHandler;
use Ellipse\Handlers\RequestHandlerWithMiddlewareQueue;

// create Psr-15 middleware and request handler.
$middleware1 = new SomeMiddleware1;
$middleware2 = new SomeMiddleware2;
$handler = new FallbackRequestHandler($response);

// Wrap the middleware around the request handler in FIFO order.
$decorated = new RequestHandlerWithMiddlewareQueue($handler, [
    $middleware1,
    $middleware2,
]);

// The request goes through middleware1, middleware2, then hit the fallback request handler.
$response = $decorated->handle($request);