Facades

2018-02-23 16:24 更新

簡(jiǎn)介

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ù)定位器的便捷語法。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)