Документация Laravel гласит: «вы можете просто« напечатать подсказку »зависимости в конструкторе класса, который разрешается контейнером, включая контроллеры, прослушиватели событий …»
Ключевыми словами здесь являются «класс, который разрешается контейнером» — я пытался воспроизвести это с моими собственными пользовательскими классами (сервисами, репозиториями, обработчиками и т. Д.), И я не могу понять это. Контроллеры (и другие классы) разрешаются через контейнер, который обрабатывает автоматическое внедрение любых зависимостей. Увидеть https://github.com/laravel/framework/blob/master/src/Illuminate/Routing/ControllerDispatcher.php#L53
Мой вопрос заключается в том, как мне добиться такой же функциональности с моей собственной структурой классов. Это не так просто, как связать классы с IoC и разрешить их через геттеры. Мне интересно, если кто-то, возможно, настроил что-то подобное в своем приложении и хотел бы поделиться своей техникой 🙂
Это будет с благодарностью!
Контейнер разрешает объект диаграммы. Таким образом, вы должны иметь свой класс на графике.
Если контроллеры обрабатываются контейнером Laravel, тогда вы идете: введите ваш сервис в ваш контроллер, и Laravel будет обрабатывать его для вас.
Под «справиться за вас» я имею в виду, что это создаст & вставьте зависимости контроллера, и зависимости зависимостей, и … Это транзитивно.
Например:
Итак, вопрос в том, куда вы хотите ввести свой класс?
Других решений пока нет …