感谢 / generic-middleware
通用的PSR-15实现:将可调用项转换为处理器和中间件。
1.0
2020-11-28 19:12 UTC
Requires
- php: ^7.4 || ^8.0
- psr/http-server-middleware: ^1.0
Requires (Dev)
- ext-json: *
- nette/tester: ^2.3
- psr/http-factory: ^1.0
- slim/psr7: ^1.2
- slim/slim: ^4.5
- tracy/tracy: ^2.3
README
💿
composer require dakujem/generic-middleware
包含几个类
GenericMiddleware
,实现了Psr\Http\Server\MiddlewareInterface
GenericHandler
,实现了Psr\Http\Server\RequestHandlerInterface
注意,我使用别名
Request
、Response
和Handler
来代替各自的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或创建问题。