2017-09-11 159 views
-1

任何人都可以請爲我清空! 爲什麼我們需要通過存儲庫類實現一個接口並將它們綁定到服務提供者中?如果綁定了特定的類,接口的用途是什麼?如果是這樣,爲什麼我們不能在控制器中注入倉庫本身?最後一件事情,依賴是什麼? 謝謝。Laravel依賴注入和綁定

回答

0

服務提供者將服務/存儲庫綁定到應用程序。它應該與其接口綁定(可以用作依賴注入的屬性類型)或其別名(如'foo.bar')。

使用別名的缺點是,依賴關係必須是類本身,單例在應用程序中保存。使用其合約(接口)的好處在於,遵循IoC模式,可以讓註冊的存儲庫實現給定的接口,從而允許更改供應商代碼,例如,如果通過替換其服務提供者來更改主存儲庫,則如果單身人士在其主界面註冊,注射仍然可以工作。因此,如果您打算使用一些供應商(或您自己的代碼)來替換Laravel的核心功能,那麼依賴注入仍然有效,但通過提供實現與Laravel相同的合同的供應商存儲庫。