haikara / middleware-stack
There is no license information available for the latest version (0.1.0) of this package.
0.1.0
2024-08-20 11:28 UTC
Requires
- php: >=8.0 <8.4.0
- psr/container: ^2.0
- psr/http-message: ^1.1 || ^2.0
- psr/http-server-handler: ^1.0
- psr/http-server-middleware: ^1.0
Requires (Dev)
- laminas/laminas-diactoros: ~2.2
- league/container: ^4.2
README
PSR-15 RequestHandlerInterfaceの実装。
Middlewareをスタックし、順に実行する。
基本的な使い方
ミドルウェアの登録
// $containerはPSR-11:ContainerInterfaceの実装 // 後述のMiddleware1, Middleware2, Middleware3を登録済みのものとする $handler = RequestHandler::createFromContainer($container); // 中心になるAction $action = static function () { echo 'Action' . PHP_EOL; return new Response(); }; $handler->addMiddleware($action); // 一括登録 $handler->addMiddlewares([ Middleware1::class, Middleware2::class, Middleware3::class, ]); // 実行 $response = $handler->handle($request); /* * Middleware3, Middleware2, Middleware1, $actionの順で実行される */
インスタンス化
PSR-15:ContainerInterfaceを渡す方法。
$handler = RequestHandler::createFromContainer($container);
任意の処理を渡す方法。
$handler = new RequestHandler(fn (string $entry) => $entry);