W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
Facades 提供一個(gè)靜態(tài)接口給在應(yīng)用程序的 服務(wù)容器 中可以取用的類。Laravel 附帶許多 facades,甚至你可能已經(jīng)在不知情的狀況下使用過它們!Laravel 的「facades」作為在 IoC 容器里面的基礎(chǔ)類的靜態(tài)代理,提供的語法有簡(jiǎn)潔、易表達(dá)的優(yōu)點(diǎn),同時(shí)維持比傳統(tǒng)的靜態(tài)方法更高的可測(cè)試性和彈性。
有時(shí),你或許會(huì)希望為應(yīng)用程序和擴(kuò)展包建立自己的 facades,所以讓我們來探索這些類的概念、開發(fā)和用法。
注意: 在深入了解 facades 之前,強(qiáng)烈建議你先熟悉 Laravel 服務(wù)容器.
解釋
在 Laravel 應(yīng)用程序的環(huán)境中,facade 是個(gè)提供從容器訪問對(duì)象的類。Facade 類是讓這個(gè)機(jī)制可以運(yùn)作的原因。Laravel 的 facades 和你建立的任何自定義 facades,將會(huì)繼承基本的 Facade 類。
你的 facade 類只需要去實(shí)現(xiàn)一個(gè)方法:getFacadeAccessor。getFacadeAccessor 方法的工作是定義要從容器解析什么?;镜?Facade 類利用 __callStatic() 魔術(shù)方法來從你的 facade 調(diào)用到解析出來的對(duì)象。
所以當(dāng)你對(duì) facade 調(diào)用,例如 Cache::get,Laravel 從服務(wù)容器解析緩存管理類出來,并對(duì)該類調(diào)用 get 方法。用專業(yè)口吻來說,Laravel Facades 是使用 Laravel 服務(wù)容器作為服務(wù)定位器的便捷語法。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: