Примечание переводчика
Я новичок в PHP, но при этом очень давно и серьезно занимаюсь разработкой баз данных — на «low level» (только хардкор, только SQL)
Много проектов реализуются по шаблону проектирования —"глупый GUI" в силу разных причин (Например — интерфейс пишет субподряд, и требуется гибкость системы без изменения кода приложения).
Настал момент когда я решил — пора попробовать перейти на «светлую» сторону!
Лара — это то, что должно мне помочь сделать это легко и перестать наконец писать всё на SQL!!!111
…
По-моему, тут просто не очень удачный пример в коде, т.к. объект класса
Responce
используется в большинстве методов контроллераUsersController
. Внедрение через методы удобно использовать когда метод использует объект не используемый в большинстве других методов. Например, если в контроллере пользователейUsersController
есть метод для приглашения на сайт по e-mail другого пользователяinviteByEmail()
, который работает через объект реализующий интерфейсIMailer
:Класс реализующий интерфейс
IMailer
может работать через сторонний сервис, для инициализации работы с которым в конструкторе класса может происходить долгая авторизация на сервисе и т.д, что нет смысла делать, при вызове всех других методов классаUsersController
.Т.е. если интерфейс используется в большинстве методов класса, то лучше использовать внедрение через конструктор. Если только в нескольких методах, то лучше делать его внедрение через метод.