#### 第五講:依賴注入
在軟件工程領域,依賴注入(Dependency Injection,簡稱DI)是用于實現控制反轉(Inversion of Control,簡稱IoC)的最常見的方式之一,而控制反轉的目的是為了更好的解耦。
依賴注入其實并不神奇,當你理解了ThinkPHP5的依賴注入的實現原理后,會發現并沒有想象中那么晦澀難懂。
ThinkPHP5的依賴注入主要指針對訪問控制器的依賴注入,實現方式主要包括**架構函數注入**和**操作方法注入**,表現方式則是在控制器架構函數和操作方法中一旦對參數進行對象類型約束則會自動觸發依賴注入(再通俗點說就是自動實例化該對象),由于訪問控制器的參數都來自于URL請求,普通變量就是通過參數綁定自動獲取,對象變量則是通過依賴注入生成,下面分別舉例說明。
#### 自動實例化規則
那么現在大家就會奇怪,依賴注入的對象是怎么實例化的呢?確實,對象實例化的方式很多也很復雜,ThinkPHP5通過一種系統的約定規則來完成,其實依賴注入的自動對象實例規則有4種,會依次進行檢查是否符合,如果符合就自動進行該對象的實例化。
#### 總結
本講主要講述了依賴注入的概念和使用方法,并且掌握了如何進行架構函數和操作方法的依賴注入,下一講的內容是錯誤和異常處理。