Почему в Laravel Dependency Injections реализован через параметры функций?
Здравствуйте.
Не сразу дошло, что в Laravel если в параметры методов написать что-то вроде public function some_func(Request $request) в $request создастся автоматически класс из подходящего сервис провайдера. По логике прошлого программирования, я наоборот должен был в эту some_func при вызове сам передать переменную $request класса Request.
Почему это сделано именно так? Ведь это сбивает с толку. Почему не сделать получение нужных объектов по типу фасадов или еще какой-нибудь функции, которая бы отдавала запрошенные значения из любого места.
В чем плюс передачи именно в параметрах методов?
Потому что это и есть Dependency Injections. А когда «я наоборот должен был в эту some_func при вызове сам передать переменную $request класса Request», то это не Dependency Injections.
JhaoDa, да, правильнее было бы задать вопрос так: "почему в laravel получение нужных для работы объектов реализовано через DI?" А не в фасадах там или других функциях каких-нибудь.