首頁 >php框架 >ThinkPHP >thinkphp3有門面類別嗎

thinkphp3有門面類別嗎

WBOY
WBOY原創
2022-04-07 16:45:392151瀏覽

thinkphp3有門面類別。門面為容器中的類別提供了一個靜態呼叫接口,具有更好的可測試性和擴展性,可以為任何的非靜態類別庫定義一個門面類,語法為“class Test{public function Class(){return路徑;}}」。

thinkphp3有門面類別嗎

本文操作環境:Windows10系統、ThinkPHP3版、Dell G3電腦。

thinkphp3有門面類別嗎

門面為容器中的類別提供了一個靜態調用接口,相比於傳統的靜態方法調用, 帶來了更好的可測試性和擴展性,你可以為任何的非靜態類別庫定義一個facade類別

為什麼使用門面

1、靜態方法和非靜態方法的區別(呼叫對象、引用變數不同)

靜態方法:是使用static關鍵字修飾的方法,又叫類別方法.屬於類別的,不屬於對象, 在實例化物件之前就可以透過類別名稱.方法名稱呼叫靜態方法。 (靜態屬性,靜態方法都是屬於類別的,可以直接透過類別名稱呼叫)。

A.在靜態方法中,可以呼叫靜態方法。

B.在靜態方法中,不能呼叫非靜態方法。

C.在靜態方法中,可以引用類別變數(即,static修飾的變數)。

D.在靜態方法中,不能引用成員變數(即,沒有static修飾的變數)。

E.在靜態方法中,不能使用super和this關鍵字

非靜態方法:是不含有static關鍵字修飾的普通方法,又稱為實例方法,成員方法。屬於對象的,不屬於類別的。 (成員屬性,成員方法是屬於物件的,必須透過new關鍵字建立物件後,再透過物件呼叫)。

A.在普通方法中,可以呼叫普通方法。

B.在普通方法中,可以呼叫靜態方法

C.在普通方法中,可以引用類別變數和成員變數

D.在普通方法中,可以使用super和this關鍵字

2、靜態方法和非靜態方法的區別(調用方法不同)

靜態方法可以直接調用,類別名稱調用和對象調用。 (類別名稱.方法名稱 / 物件名稱.方法名稱)

但是非靜態方法只能透過物件呼叫。 (物件名稱.方法名稱)

3、靜態方法與非靜態方法的差異(生命週期不同)

靜態方法的生命週期跟對應的類別一樣長,靜態方法和靜態變數會隨著類別的定義而被分配和裝載入記憶體中。一直到執行緒結束,靜態屬性和方法才會被銷毀。 (也就是靜態方法屬於類別)

非靜態方法的生命週期和類別的實例化物件一樣長,只有當類別實例化了一個對象,非靜態方法才會被創建,而當這個對象被銷毀時,非靜態方法也馬上被銷毀。 (也就是非靜態方法屬於物件)

總結

類別方法可以直接透過類別名稱調用,實例方法必須先實例化類,再初始化對象,然後透過類別的實例物件才能呼叫

如何使用

1、建立一個需要放置門面類別的資料夾facade

2、寫好自己的公共類別

3、在facade創建facade類程式碼如下

use think/Facade;
class TestFacade extends Facade{
protected static function getFacadeClass(){
return '写好的目标公共类绝对路径';
}
}

4、呼叫這個公共類別的時候可以直接使用門面類別來取代公共類,這樣公共類別的非靜態方法也可以使用靜態呼叫了

推薦學習:《PHP影片教學

#

以上是thinkphp3有門面類別嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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