2017-09-11 3 views
-1

quelqu'un peut s'il vous plaît effacer l'air pour moi! Pourquoi avons-nous besoin de mettre en œuvre une interface par une classe de référentiel et de les lier dans le fournisseur de services ?? Quelle est l'utilisation de l'interface si elle était liée à une classe spécifique? et si oui, pourquoi ne pouvons-nous pas injecter le dépôt lui-même dans le contrôleur? dernière chose, quelle est la dépendance de toute façon? Merci.Laravel Dépendance Injection et reliures

Répondre

0

Le fournisseur de services lie le service/référentiel à l'application. Il doit être lié soit avec son interface (qui peut ensuite être utilisé comme type de propriété pour l'injection de dépendance), soit avec son alias (tel que 'foo.bar').

L'inconvénient de l'utilisation d'un alias est que la dépendance DOIT être la classe elle-même, que le singleton est conservé dans l'application. L'avantage de l'utilisation de son contrat (interface) est que, suivant le modèle IoC, vous pouvez faire en sorte que le référentiel enregistré implémente l'interface donnée, ce qui permet de modifier le code du fournisseur, par exemple si vous remplacez le référentiel principal. l'injection fonctionnerait toujours si le singleton était enregistré avec son interface principale. Donc, si vous avez l'intention d'utiliser un fournisseur (ou votre propre code) pour remplacer la fonction principale de Laravel, l'injection de dépendances fonctionnera toujours, mais en fournissant le référentiel fournisseur qui implémente le même contrat que le Laravel.