感谢/generic-middleware

通用的PSR-15实现:将可调用项转换为处理器和中间件。

1.0 2020-11-28 19:12 UTC

This package is auto-updated.

Last update: 2024-08-29 10:19:31 UTC


README

PHP from Packagist Test Suite Coverage Status

💿 composer require dakujem/generic-middleware

包含几个类

  • GenericMiddleware,实现了Psr\Http\Server\MiddlewareInterface
  • GenericHandler,实现了Psr\Http\Server\RequestHandlerInterface

注意,我使用别名RequestResponseHandler来代替各自的PSR接口名称,以便简化。

以下是一些使用中的use语句

use Psr\Http\Message\ServerRequestInterface  as Request;
use Psr\Http\Message\ResponseInterface       as Response;
use Psr\Http\Server\RequestHandlerInterface  as Handler;

GenericMiddleware

GenericMiddleware是一个通用中间件,它将可调用项转换为PSR-15实现。它接受任何具有签名fn(Request,Handler):Response的可调用项。

它可以用于方便地实现内联中间件

$app->add(new GenericMiddleware(function(Request $request, Handler $next): Response {
    $request = $request->withAttribute('foo', 42);
    $response = $next->handle($request);
    return $response->withHeader('foo', 'bar');
}));

GenericHandler

GenericHandler是一个通用请求处理器,根据PSR-15规范。它将签名fn(Request):Response的可调用项转换为PSR-15实现。

它可用于方便地实现内联处理器,您不想使用匿名类或命名类时

$kernel = new GenericHandler(
    fn() => new Response(404, 'Not Found')
);
$dispatcher = new MiddlewareDispatcher($kernel);

测试

使用以下命令运行单元测试

$ composer test

贡献

欢迎提出想法、功能请求和其他贡献。请发送PR或创建问题。