我有 2 组路由(web 和 api):
这是一个网络路由示例:
return function (Application $app, MiddlewareFactory $factory, ContainerInterface $container): void {
$app->get('/', [
Zend\Expressive\Session\SessionMiddleware::class,
Zend\Expressive\Flash\FlashMessageMiddleware::class,
User\Service\Auth\TemplateAuthMiddleware::class,
Dev\Handler\IndexPageHandler::class
], 'home');
$app->route('/auth/login', [
Zend\Expressive\Session\SessionMiddleware::class,
Zend\Expressive\Flash\FlashMessageMiddleware::class,
User\Service\Auth\OnlyForGuestsMiddleware::class,
User\Service\Auth\TemplateAuthMiddleware::class,
User\Handler\LoginPageHandler::class
], ['GET', 'POST'], 'auth.login');
$app->route('/auth/register', [
Zend\Expressive\Session\SessionMiddleware::class,
Zend\Expressive\Flash\FlashMessageMiddleware::class,
User\Service\Auth\OnlyForGuestsMiddleware::class,
User\Service\Auth\TemplateAuthMiddleware::class,
User\Handler\ResetPageHandler::class
], ['GET', 'POST'], 'auth.register');
...
};
我注意到许多中间件是重复的。我想对一些中间件进行分组。例如:
'web' => [
Zend\Expressive\Session\SessionMiddleware::class,
Zend\Expressive\Flash\FlashMessageMiddleware::class,
User\Service\Auth\TemplateAuthMiddleware::class,
]
我知道 zend-expressive 不支持像 laravel5 这样的 widdleware 组。有没有一个漂亮的分组解决方案?