Класс Guard
используется для аутентификации, т.е. входа пользователя в систему, проверки наличия аутентифицированного пользователя, получения аутентифицированного пользователя, выхода из него и т. Д.
Я бы сказал, наиболееРаспространенный способ доступа к этой информации (без документации и различных учебных пособий) - использование вспомогательной функции Auth
Facade или auth () .При любом подходе у вас будет доступ к тем же методам, например,
auth()->user()
или Auth::user()
вернет текущего аутентифицированного пользователя.
auth()->id()
или Auth::id()
вернет текущего аутентифицированного пользователя id
.
auth()->check()
или Auth::check()
сообщит вам, вошел ли текущий пользователь в систему или нет.
и т. Д.
В любом случае (используя auth()->
или Auth::
) вымы собираемся получить доступ к методам класса Guard
.
В Laravel также есть нечто, называемое Service Container , что дает вам возможность иметь внедрение зависимости .По сути, это место, где вы можете автоматически получить экземпляр класса без необходимости делать что-то вроде new ClassName()
.Поначалу это может показаться не таким уж большим делом, но если у вас есть класс, которому нужно передать другую переменную и классы его конструктору, вы можете установить это в контейнере, чтобы вам не пришлось об этом беспокоиться.Другое преимущество может заключаться в том, что вы хотите использовать один и тот же экземпляр класса, а не создавать новый каждый раз, что также можно сделать с контейнером.
Теперь некоторые люди предпочитаютиспользовать внедрение зависимостей вместо использования Facades или вспомогательных функций (см. здесь для получения дополнительной информации).В этом примере вы вводите класс Guard
, чтобы вы могли обращаться к нему как к свойству класса, а не использовать функцию Facade или вспомогательную функцию.Это не более того.