waglpz/webapp-middleware

Web 应用中间件组件

2.2.0 2024-09-02 21:44 UTC

This package is auto-updated.

Last update: 2024-09-02 23:00:20 UTC


README

PHP Checked

通过composer安装

composer require waglpz/webapp-middleware

在Docker容器内使用源代码

在某个目录下克隆项目 git clone https://github.com/waglpz/webapp-middleware.git

进入目录 webapp-middleware 并运行: bash ./bin/start.sh 以在Docker容器内开始工作。

停止并清理运行: bash ./bin/clean.sh

在Docker容器中使用Composer
  1. 安装供应商依赖 composer install
  2. 显示Waglpz Composer命令: composer list | grep waglpz
    1. 检查源代码活力: composer waglpz:check:normal
    2. 检查源代码风格: waglpz:cs-check
    3. 自动修复源代码风格错误: waglpz:cs-fix

创建和调用中间件栈

PHP代码示例

$request;
\assert($request instanceof \Psr\Http\Message\ServerRequestInterface);

$middleware_1;
\assert($middleware_1 instanceof Waglpz\Webapp\Middleware\Middleware);
$middleware_2;
\assert($middleware_2 instanceof Waglpz\Webapp\Middleware\Middleware);
$middleware_3;
\assert($middleware_3 instanceof Waglpz\Webapp\Middleware\Middleware);
$finnaly;
\assert(\is_callable($finnaly));
$middlewares = [
    $middleware_1,// execute first
    $middleware_2,// execute second
    $middleware_3 // executes third
];


$middlewareStack = new Waglpz\Webapp\Middleware\MiddlewareStack($middlewares);

$response = $middlewareStack($request);
// or exact same as manual call
$response = $middleware_1(
    $request, 
    fn ($request) => $middleware_2(
        $request, 
        fn ($request) => $middleware_3(
            $request, 
            fn ($request) => $finnaly(
                $request
            )
        )
    )
); 

\assert($response instanceof \Psr\Http\Message\ResponseInterface)