天天看點

thinkphp學習筆記4—眼花缭亂的配置

1.配置類别

ThinkPHP提供了靈活的全局配置功能,ThinkPHP會依次加載管理配置>項目配置>調試配置>分組配置>擴充配置>動态配置,是以後面的配置權限要大于前面的,因為後面的配置會覆寫前面同名配置,同僚會生辰配置緩存檔案無需重複解析,減小開銷。

慣例配置:在慣例配置内對大多數常用參數進行預設配置,因為慣例配置最先加載,優先級别最低,如果不需要做特殊配置的話,完全可以保持預設值,慣例配置位于ThinkPHP/Conf/convention.php,内容摘抄如下:

應用配置:調用所有子產品之前加載的公共配置檔案,位于Application/Common/Conf/config.php,注意如果修改公共子產品的名稱,公共配置檔案的位置也要相應改變,應用配置裡沒有什麼内容,需要自己添加,如下:

模式配置:如果使用普通應用模式之外的應用模式,可以為應用模式單獨添加配置檔案,檔案存放的位置和命名規則如下:Application/Common/Conf/config_應用模式名稱.php,注意模式配置僅僅在運作模式下才會加載

調試配置:如果開啟調試模式的話,則會自動加載架構的調試配置檔案和應用調試配置檔案,他們的位置分别位于ThinkPHP/Conf/debug.php,Application/Common/Conf/debug.php

狀态配置:每個應用可以在不同的情況下設定自己的狀态,也可稱之為應用場景,如果我們要區分開發環境和測試環境,在入口檔案中定義define('APP_STATUS','development');那麼會加載對應的配置檔案Application/Common/Conf/development.php,如果在入口檔案中修改為define('APP_STATUS','test');那麼會加載對應的配置檔案Application/Common/Conf/test.php

子產品配置:每個子產品會加載自己的配置檔案,和子產品放在相同目錄下,例如:Application/目前子產品名/Conf/config.php,如果使用了普通模式之外的其他應用模式,還可以為應用模式單獨定義配置檔案,名稱和存放目錄如:Application/目前子產品名/Conf/config_應用模式名稱.php,注意這個僅在運作模式下才會加載,子產品配置檔案是可選的。

如果應用的配置檔案比較大,想分成幾個單獨的配置檔案或者加載額外的配置檔案可以使用擴充配置和動态配置。

2.讀取配置

ThinkPHP使用C方法來讀取配置節點,就是Config的意思,注意配置項的參數不區分大小寫,C('URL_MODEL')和C('url_model')得到的結果是一樣的,但是還是建議區分大小寫。配置參數名字不能使用“.”,因為這個是用來讀取二維參數的,如果沒有配置則傳回NULL。讀取二維參數值的方法如下:C('USER_CONFIG.USER_TYPE');

3.動态配置

可以預先寫好配置參數,也可以在方法中動态設定,也是使用C方法,例如:C('參數名稱','新的參數值');動态配置僅僅對目前請求有效,對其他的請求無效。注意到動态配置的方法和讀取配置的方法是一樣的,隻不過多了一個參數而已。

4.擴充配置

擴充配置可以自動加載額外的自定義配置檔案,配置格式和項目配置的格式一樣,設定擴充配置的方式如下:

// 加載擴充配置檔案

'LOAD_EXT_CONFIG' => 'user,db',