2017-09-11 134 views
-1

任何人都可以请为我清空! 为什么我们需要通过存储库类实现一个接口并将它们绑定到服务提供者中?如果绑定了特定的类,接口的用途是什么?如果是这样,为什么我们不能在控制器中注入仓库本身?最后一件事情,依赖是什么? 谢谢。Laravel依赖注入和绑定

回答

0

服务提供者将服务/存储库绑定到应用程序。它应该与其接口绑定(可以用作依赖注入的属性类型)或其别名(如'foo.bar')。

使用别名的缺点是,依赖关系必须是类本身,单例在应用程序中保存。使用其合约(接口)的好处在于,遵循IoC模式,可以让注册的存储库实现给定的接口,从而允许更改供应商代码,例如,如果通过替换其服务提供者来更改主存储库,则如果单身人士在其主界面注册,注射仍然可以工作。因此,如果您打算使用一些供应商(或您自己的代码)来替换Laravel的核心功能,那么依赖注入仍然有效,但通过提供实现与Laravel相同的合同的供应商存储库。