ivanvorobei
@ivanvorobei
iOS разработчик, канал https://t.me/sparrowcode

Аутентификация в Lumen: Middleware vs Provider?

Для аутентификации в документации Lumen предложено использовать Provider. При этом используется и Middleware.
В Provider необходимо реализовать получение пользователя из БД, а в Middleware просто проверить пользователя и сделать ответ, если пользователь не найден.

Почему не объединить работу в Middleware?
Какой практической цели служит Service Provider?
  • Вопрос задан
  • 649 просмотров
Решения вопроса 1
Denormalization
@Denormalization
Почему не объединить работу в Middleware?

Service Provider и Middleware отвечают за разные вещи. И один не заменяет второй.
Разделение ответсвенности.

Какой практической цели служит Service Provider?

Service Provider умеет делать только что, что от него необходимо. В нем вся логика работы.
Middleware содержит логику для работы с запросом, оно не знает КАК ИМЕННО авторизовывать пользователя. Оно знает что нужно дернуть AuthServiceProvider::guest(), например, и в зависимости от результата пропустить запрос дальше или прервать его.

Для простых приложений это не критично, можно хоть один GodObject на всё сделать, и оно будет работать.
Нужно мысль в плане расширения функционала.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
R0s0maxa
@R0s0maxa
junior web-developer
Потому что называется HTTP Middleware. Т.е. мидлавейр ничего не знает о вашей базе данных и тп
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы