Вынос кода в Middleware

Использование посредников middleware для выноса повторяющегося инфраструктурного кода из контроллеров. Очистка ввода и централизованная обработка доменных исключений.

Скрытый контент
Комментарии (6)
Arunas
2020-03-26 17:29

Спасибо.

Ответить
Denis
2020-03-27 06:19

Добрый день.

А как быть с middleware, если мне надо для какого - то опредленного контроллера добавить что - то специфическое? Какую - то дополнительную обработку.

И еще вопрос - Вот получили мы запрос в коноллере и ручками теперь собираем все в команду. А можно как - то автоматизировать данный процесс? Допустим, есть такие вещи, как JmsSerializer или подобный пакет от Симфони, можно данные вещи использовать для заполнения команды? Оно там даже должно немного ругать на неверно заполненные поля. Ведь бывают ситуации, когда с фронта приходит не 2 поля а 10 -15 , а то и 35 (если есть большая бизнес логика).

Ответить
Deworker Pro
2020-03-28 07:29

Если для определённого, то привязывем через add() напрямую к маршруту или группе:

$app->get('/cabinet', CabinetAction::class)->add(AuthMiddleware::class);
Ответить
Deworker Pro
2020-03-28 07:30

Да, можно автоматизировать заполнение через symfony/serializer.

Ответить
Степанов алексей
2020-03-27 19:32

Здравствуйте Дмитрий, спасибо как всегда и вопрос, а в Симфони такое можно сделать только через EventSubscriberInterface и отлавливать kernel request я правильно понимаю?

или есть возможность упростить там? Спасибо!

Ответить
Deworker Pro
2020-03-28 07:35

Да, там нет middleware. Только через подписку на события kernel.controller и kernel.exception.

Ответить
Зарегистрируйтесь или войдите чтобы оставить комментарий