Thinkphp 框架配置操作之配置加載與讀取配置實(shí)例分析
本文實(shí)例講述了Thinkphp 框架配置操作之配置加載與讀取配置。分享給大家供大家參考,具體如下:
配置加載
在ThinkPHP中,一般來說應(yīng)用的配置文件是自動(dòng)加載的,加載的順序是:
慣例配置->應(yīng)用配置->模式配置->調(diào)試配置->狀態(tài)配置->模塊配置->擴(kuò)展配置->動(dòng)態(tài)配置
以上是配置文件的加載順序,因?yàn)楹竺娴呐渲脮?huì)覆蓋之前的同名配置(在沒有生效的前提下),所以配置的優(yōu)先順序從右到左。
不同的配置文件的區(qū)別和位置:
慣例配置
慣例重于配置是系統(tǒng)遵循的一個(gè)重要思想,框架內(nèi)置有一個(gè)慣例配置文件(位于ThinkPHP/Conf/convention.php),按照大多數(shù)的使用對常用參數(shù)進(jìn)行了默認(rèn)配置。所以,對于應(yīng)用的配置文件,往往只需要配置和慣例配置不同的或者新增的配置參數(shù),如果你完全采用默認(rèn)配置,甚至可以不需要定義任何配置文件
應(yīng)用配置
應(yīng)用配置文件也就是調(diào)用所有模塊之前都會(huì)首先加載的公共配置文件(默認(rèn)位于Application/Common/Conf/config.php)。
如果更改了公共模塊的名稱的話,公共配置文件的位置也相應(yīng)改變
模式配置(可選)
如果使用了普通應(yīng)用模式之外的應(yīng)用模式的話,還可以為應(yīng)用模式(后面會(huì)有描述)單獨(dú)定義配置文件,文件命名規(guī)范是: Application/Common/Conf/config_應(yīng)用模式名稱.php(僅在運(yùn)行該模式下面才會(huì)加載)。
模式配置文件是可選的
調(diào)試配置(可選)
如果開啟調(diào)試模式的話,則會(huì)自動(dòng)加載框架的調(diào)試配置文件(位于ThinkPHP/Conf/debug.php)和應(yīng)用調(diào)試配置文件(位于Application/Common/Conf/debug.php)
狀態(tài)配置(可選)
每個(gè)應(yīng)用都可以在不同的情況下設(shè)置自己的狀態(tài)(或者稱之為應(yīng)用場景),并且加載不同的配置文件。
舉個(gè)例子,你需要在公司和家里分別設(shè)置不同的數(shù)據(jù)庫測試環(huán)境。那么可以這樣處理,在公司環(huán)境中,我們在入口文件中定義:
define('APP_STATUS','office');
那么就會(huì)自動(dòng)加載該狀態(tài)對應(yīng)的配置文件(位于Application/Common/Conf/office.php)。
如果我們回家后,我們修改定義為:
define('APP_STATUS','home');
那么就會(huì)自動(dòng)加載該狀態(tài)對應(yīng)的配置文件(位于Application/Common/Conf/home.php)。
狀態(tài)配置文件是可選的
模塊配置
每個(gè)模塊會(huì)自動(dòng)加載自己的配置文件(位于Application/當(dāng)前模塊名/Conf/config.php)。
如果使用了普通模式之外的其他應(yīng)用模式,你還可以為應(yīng)用模式單獨(dú)定義配置文件,命名規(guī)范為: Application/當(dāng)前模塊名/Conf/config_應(yīng)用模式名稱.php(僅在運(yùn)行該模式下面才會(huì)加載)。
模塊還可以支持獨(dú)立的狀態(tài)配置文件,命名規(guī)范為: Application/當(dāng)前模塊名/Conf/應(yīng)用狀態(tài).php。
讀取配置
無論何種配置文件,定義了配置文件之后,都統(tǒng)一使用系統(tǒng)提供的C方法(可以借助Config單詞來幫助記憶)來讀取已有的配置。
用法:
C('參數(shù)名稱')
例如,讀取當(dāng)前的URL模式配置參數(shù):
$model = C('URL_MODEL');
// 由于配置參數(shù)不區(qū)分大小寫,因此下面的寫法是等效的
// $model = C('url_model');
但是建議使用大寫方式的規(guī)范。
注意:配置參數(shù)名稱中不能含有 “.” 和特殊字符,允許字母、數(shù)字和下劃線。
如果url_model尚未存在設(shè)置,則返回NULL。
支持在讀取的時(shí)候設(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方法可以在任何地方讀取任何配置,即使某個(gè)設(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è)計(jì)有所幫助。
- thinkphp 框架數(shù)據(jù)庫切換實(shí)現(xiàn)方法分析
- Thinkphp 框架配置操作之動(dòng)態(tài)配置、擴(kuò)展配置及批量配置實(shí)例分析
- Thinkphp 框架基礎(chǔ)之入口文件功能、定義與用法分析
- Thinkphp 框架基礎(chǔ)之源碼獲取、環(huán)境要求與目錄結(jié)構(gòu)分析
- Thinkphp 框架擴(kuò)展之驅(qū)動(dòng)擴(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ū)動(dòng)原理與用法分析
- 淺談PHP之ThinkPHP框架使用詳解
相關(guān)文章
基于 Swoole 的微信掃碼登錄功能實(shí)現(xiàn)代碼
隨著微信的普及,掃碼登錄方式越來越被現(xiàn)在的應(yīng)用所使用。它因?yàn)椴挥萌ビ涀∶艽a,只要有微信號(hào)即可方便快捷登錄.這里基于微信公眾平臺(tái)的帶參數(shù)臨時(shí)二維碼,并且結(jié)合 Swoole 的 WebSocket 服務(wù)實(shí)現(xiàn)掃碼登錄2018-01-01
PHP FATAL ERROR: CALL TO UNDEFINED FUNCTION BCMUL()解決辦法
這篇文章主要介紹了PHP FATAL ERROR: CALL TO UNDEFINED FUNCTION BCMUL()解決辦法,需要的朋友可以參考下2014-05-05
PHP根據(jù)IP地址獲取所在城市具體實(shí)現(xiàn)
這篇文章主要介紹了PHP根據(jù)IP地址獲取所在城市具體實(shí)現(xiàn),有需要的朋友可以參考一下2013-11-11
PHPStorm2020.1永久激活及下載更新至2020(推薦)
這篇文章主要介紹了PHPStorm2020.1永久激活及下載更新至2020,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09

