Laravel Dependency Injection и привязки

Может кто-нибудь, пожалуйста, очистить воздух для меня!
Зачем нам нужно реализовывать интерфейс с помощью класса репозитория и связывать их в сервис-провайдере? какая польза от интерфейса, если он был связан с определенным классом ?? и если да, то почему мы не можем внедрить сам репозиторий в контроллер?
Последнее, что такое зависимость в любом случае?
Благодарю.

-1

Решение

Поставщик услуг связывает сервис / репозиторий с приложением. Его следует связать либо с его интерфейсом (который затем можно использовать как тип свойства для внедрения зависимости), либо с его псевдонимом (например, «foo.bar»).

Недостатком использования псевдонима является то, что зависимость ДОЛЖНА быть сам класс, который синглтон хранится в приложении. Преимущество использования его Контракта (интерфейса) состоит в том, что, следуя шаблону IoC, вы можете иметь зарегистрированный репозиторий, реализующий данный Интерфейс, что позволяет вносить изменения в код поставщика, например, если вы измените основной репозиторий хранилища, заменив его поставщика услуг, Впрыск все равно будет работать, если синглтон будет зарегистрирован с его основным интерфейсом.

Поэтому, если вы намереваетесь использовать какого-либо поставщика (или ваш собственный код) для замены основной функции Laravel, внедрение зависимостей все еще будет работать, но предоставляя репозиторий поставщика, который реализует тот же контракт, что и контракт Laravel.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector