Как я могу сгруппировать идентичное промежуточное ПО в Zend-Expressive? - PullRequest
0 голосов
/ 14 декабря 2018

У меня есть 2 группы маршрутов (web и api):

enter image description here

Вот пример веб-маршрутов:

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 не поддерживает группы Widware, такие как laravel5.Есть ли для этого прекрасное решение для группировки?

...