在SuperForum中定义全局中间件


发表于:2 月前 | {{user.city}}

此功能在 super-forum V2.1.2 版本中生效!

这里提供两个注解类:

App\CodeFec\Annotation\BeforMiddleware;

App\CodeFec\Annotation\AfterMiddleware;

使用 BeforMiddleware 定义的全局中间件 会优先运行。

相反,使用 AfterMiddleware 定义的全局中间件会最后运行

创建中间件

先创建一个 TestMiddleware 类,此类必须要使用 MiddlewareInterface 接口

相关文档 https://hyperf.wiki/2.2/#/zh-cn/middleware/middleware (仅供参考)

详细看以下实例代码:

<?php

namespace App\CodeFec\Test;

use App\CodeFec\Annotation\AfterMiddleware;
use Hyperf\Utils\Str;
use Psr\Container\ContainerInterface;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\MiddlewareInterface;
use Psr\Http\Server\RequestHandlerInterface;

#[AfterMiddleware]
class TestMiddleware implements MiddlewareInterface
{
    /**
     * @var   ContainerInterface
     */
    protected $container;

    public function __construct(ContainerInterface $container)
    {
        $this->container = $container;
    }

    public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
    {
  
        return $handler->handle($request);
    }
}
signature
一个不会写文档的程序猿。
评论

无权限

请登录后评论