haikara/middleware-stack

该包的最新版本(0.1.0)没有提供许可证信息。

0.1.0 2024-08-20 11:28 UTC

This package is auto-updated.

Last update: 2024-09-20 11:43:36 UTC


README

PSR-15 RequestHandlerInterface的实现。
将中间件堆叠起来,按顺序执行。

基本用法

注册中间件

// $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);