middlewares 和 afterMiddlewares 的区别是什么?
在app/bean.php文件下,存在middlewars和afterMiddlewares两个中间件配置,如下:
'middlewares' => [
\App\Http\Middleware\FavIconMiddleware::class,
\App\Http\Middleware\TrimParamsMiddleware::class,
\App\Http\Middleware\IdValidateMiddleware::class,
// \Swoft\Whoops\WhoopsMiddleware::class,
// Allow use @View tag
\Swoft\View\Middleware\ViewMiddleware::class,
],
'afterMiddlewares' => [
\Swoft\Http\Server\Middleware\ValidatorMiddleware::class
]
但debug发现,在执行中间件时,其实是将两者合并放到了一个$requestMiddlewares
的数组中的,如下:
然后,依次执行中间件的process
方法。
那么middlewares
和afterMiddlewares
两项配置的区别在哪?还是说在其他地方有使用上的区别?
)
afterMiddlewares
里的中间件总是会追加到middlewares
的后面,也就是 after 这里面的 中间件总是在最后被执行。