Я создал приложение Laravel 5.4 с пользовательским фасадом App\Facades\Repo
. Фасад Repo проксирует класс RepositoryFactory
. В конфигурации моего приложения у меня есть псевдоним Repo
, который указывает на фасад репо. Я использую его для получения репозиториев с такими вызовами, как Repo::get('User')
.
Это отлично работает, если я нахожусь в контроллере или в файле маршрутов. Однако в других частях приложения я не могу использовать псевдоним Repo
. Интерпретатор ищет класс Repo в текущем пространстве имен и выдает ошибки. Это вызывает два вопроса:
- Какие классы знают о псевдонимах фасада? Что их определяет?
- В классах, которые не знают о псевдонимах фасадов, следует ли мне идти дальше и импортировать сам класс фасада? Или это запах кода?
Например, классы, которые не поддерживают псевдонимы, включают сами мои репозитории. Я создал для них супертип, но они не наследуются ни от одного класса Laravel. Иногда моим репозиториям нужно обращаться к другим репозиториям для выполнения своей работы.