目錄
- 配置加載
- 慣例配置
- 應(yīng)用配置
- 模式配置(可選)
- 調(diào)試配置(可選)
- 狀態(tài)配置(可選)
- 模塊配置
- 讀取配置
本文實(shí)例講述了Thinkphp 框架配置操作之配置加載與讀取配置。分享給大家供大家參考,具體如下:
配置加載
在ThinkPHP中,一般來說應(yīng)用的配置文件是自動加載的,加載的順序是:
慣例配置->應(yīng)用配置->模式配置->調(diào)試配置->狀態(tài)配置->模塊配置->擴(kuò)展配置->動態(tài)配置
以上是配置文件的加載順序,因?yàn)楹竺娴呐渲脮采w之前的同名配置(在沒有生效的前提下),所以配置的優(yōu)先順序從右到左。
不同的配置文件的區(qū)別和位置:
慣例配置
慣例重于配置是系統(tǒng)遵循的一個重要思想,框架內(nèi)置有一個慣例配置文件(位于ThinkPHP/Conf/convention.php),按照大多數(shù)的使用對常用參數(shù)進(jìn)行了默認(rèn)配置。所以,對于應(yīng)用的配置文件,往往只需要配置和慣例配置不同的或者新增的配置參數(shù),如果你完全采用默認(rèn)配置,甚至可以不需要定義任何配置文件
應(yīng)用配置
應(yīng)用配置文件也就是調(diào)用所有模塊之前都會首先加載的公共配置文件(默認(rèn)位于Application/Common/Conf/config.php)。
如果更改了公共模塊的名稱的話,公共配置文件的位置也相應(yīng)改變
模式配置(可選)
如果使用了普通應(yīng)用模式之外的應(yīng)用模式的話,還可以為應(yīng)用模式(后面會有描述)單獨(dú)定義配置文件,文件命名規(guī)范是: Application/Common/Conf/config_應(yīng)用模式名稱.php(僅在運(yùn)行該模式下面才會加載)。
模式配置文件是可選的
調(diào)試配置(可選)
如果開啟調(diào)試模式的話,則會自動加載框架的調(diào)試配置文件(位于ThinkPHP/Conf/debug.php)和應(yīng)用調(diào)試配置文件(位于Application/Common/Conf/debug.php)
狀態(tài)配置(可選)
每個應(yīng)用都可以在不同的情況下設(shè)置自己的狀態(tài)(或者稱之為應(yīng)用場景),并且加載不同的配置文件。
舉個例子,你需要在公司和家里分別設(shè)置不同的數(shù)據(jù)庫測試環(huán)境。那么可以這樣處理,在公司環(huán)境中,我們在入口文件中定義:
define('APP_STATUS','office');
那么就會自動加載該狀態(tài)對應(yīng)的配置文件(位于Application/Common/Conf/office.php)。
如果我們回家后,我們修改定義為:
define('APP_STATUS','home');
那么就會自動加載該狀態(tài)對應(yīng)的配置文件(位于Application/Common/Conf/home.php)。
狀態(tài)配置文件是可選的
模塊配置
每個模塊會自動加載自己的配置文件(位于Application/當(dāng)前模塊名/Conf/config.php)。
如果使用了普通模式之外的其他應(yīng)用模式,你還可以為應(yīng)用模式單獨(dú)定義配置文件,命名規(guī)范為: Application/當(dāng)前模塊名/Conf/config_應(yīng)用模式名稱.php(僅在運(yùn)行該模式下面才會加載)。
模塊還可以支持獨(dú)立的狀態(tài)配置文件,命名規(guī)范為: Application/當(dāng)前模塊名/Conf/應(yīng)用狀態(tài).php。
讀取配置
無論何種配置文件,定義了配置文件之后,都統(tǒng)一使用系統(tǒng)提供的C方法(可以借助Config單詞來幫助記憶)來讀取已有的配置。
用法:
例如,讀取當(dāng)前的URL模式配置參數(shù):
$model = C('URL_MODEL');
// 由于配置參數(shù)不區(qū)分大小寫,因此下面的寫法是等效的
// $model = C('url_model');
但是建議使用大寫方式的規(guī)范。
注意:配置參數(shù)名稱中不能含有 “.” 和特殊字符,允許字母、數(shù)字和下劃線。
如果url_model尚未存在設(shè)置,則返回NULL。
支持在讀取的時候設(shè)置默認(rèn)值,例如:
// 如果my_config尚未設(shè)置的話,則返回default_config字符串
C('my_config',null,'default_config');
C方法也可以用于讀取二維配置:
//獲取用戶配置中的用戶類型設(shè)置
C('USER_CONFIG.USER_TYPE');
因?yàn)榕渲脜?shù)是全局有效的,因此C方法可以在任何地方讀取任何配置,即使某個設(shè)置參數(shù)已經(jīng)生效過期了。
更多關(guān)于thinkPHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《ThinkPHP入門教程》、《thinkPHP模板操作技巧總結(jié)》、《ThinkPHP常用方法總結(jié)》、《codeigniter入門教程》、《CI(CodeIgniter)框架進(jìn)階教程》、《Zend FrameWork框架入門教程》及《PHP模板技術(shù)總結(jié)》。
希望本文所述對大家基于ThinkPHP框架的PHP程序設(shè)計有所幫助。
您可能感興趣的文章:- thinkphp 框架數(shù)據(jù)庫切換實(shí)現(xiàn)方法分析
- Thinkphp 框架配置操作之動態(tài)配置、擴(kuò)展配置及批量配置實(shí)例分析
- Thinkphp 框架基礎(chǔ)之入口文件功能、定義與用法分析
- Thinkphp 框架基礎(chǔ)之源碼獲取、環(huán)境要求與目錄結(jié)構(gòu)分析
- Thinkphp 框架擴(kuò)展之驅(qū)動擴(kuò)展實(shí)例分析
- Thinkphp 框架擴(kuò)展之應(yīng)用模式實(shí)現(xiàn)方法分析
- Thinkphp 框架擴(kuò)展之Widget擴(kuò)展實(shí)現(xiàn)方法分析
- Thinkphp 框架擴(kuò)展之行為擴(kuò)展原理與實(shí)現(xiàn)方法分析
- Thinkphp 框架擴(kuò)展之標(biāo)簽庫驅(qū)動原理與用法分析
- 淺談PHP之ThinkPHP框架使用詳解