Я разрабатываю пакет laravel, внутри пакета у меня есть репозиторий, который обрабатывает данные.
Когда пользователь устанавливает пакет, как я могу заставить его взаимодействовать с репозиторием в своем приложении?
Должен ли я настроить фасад, чтобы они могли делать что-то вроде:
SuperPackage::getSomeData();
Или я должен использовать другой способ?
В документах указано:
При создании стороннего пакета, взаимодействующего с Laravel, лучше внедрять контракты Laravel вместо использования фасадов. Поскольку пакеты создаются вне самого Laravel, у вас не будет доступа к помощникам по тестированию фасадов Laravel.
Я предполагаю, что это просто предназначено для внутренних частей пакета, внешнего вызова пакета, фасады все еще в порядке?
userRepository
доступным в вашем контракте/реализации, который, например, возвращает экземпляр вашего пользовательского репозитория. Затем вы можете использовать внедрение зависимостей ИЛИ свой фасад для доступа к нему:YourPackage::userRepository()->methodOnUserRepository()
. Как это звучит? 24.11.2016Socialite->with($provider)->redirect()
, где$provider
может быть любой из доступных реализаций, 24.11.2016