首頁  >  文章  >  後端開發  >  如何理解laravel中的依賴注入和容器這兩個概念?

如何理解laravel中的依賴注入和容器這兩個概念?

WBOY
WBOY原創
2016-09-23 11:31:061358瀏覽

新手學laravel,對於文件中的容器和依賴注入一直不是很理解,有誰能通俗易懂的解釋一下這是什麼?在實際專案中哪些地方需要用到?

回覆內容:

新手學laravel,對於文件中的容器和依賴注入一直不是很理解,有誰能通俗易懂的解釋一下這是什麼?在實際專案中哪些地方需要用到?

這篇文章寫得不錯http://laravelacademy.org/pos...

Service Container,當A類工作需要依賴B、C類時,傳統會在A類內部進行new B,new C後才能使用B,C提供的服務,這樣會使得A類與B,C嚴重耦合。但是有了Service Container,就可以把依賴的建構過程由容器去解決,而A類只需要在ConstructorMethod Getter/Setter中註入B和C類或者B,C的抽象(接口),這就是建構器依賴注入和方法依賴注入(Dependency Injection),實現A類與B,C的解耦。如:如果注入的是B,C的接口,就可以隨時替換掉B,C成為D,E,D,E只要實現對應的接口就行,這樣A就與B,C實現松耦合。
Laravel中往Service Container中綁定服務的就是三種方法:bind(),singleton(),instance();解析出服務的是make()方法。解決建構相依或方法依賴的是\Illuminate\Container\Container::getDependencies(),\Illuminate\Container\Container::call()方法。當中一個重要知識點就是利用了PHP的Reflection特性。
具體可看下源碼。希望能幫到你。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn