官术网_书友最值得收藏!

2.1 配置類型

在ThinkPHP中,配置文件都是自動(dòng)加載的(也就是不用顯示require),加載順序?yàn)椋?/p>

默認(rèn)配置公共配置模式配置調(diào)試配置場(chǎng)景配置模塊配置擴(kuò)展配置動(dòng)態(tài)配置。

加載順序優(yōu)先級(jí)從左往右依次遞增,也就是說(shuō)“動(dòng)態(tài)配置”是最高優(yōu)先級(jí),如果左邊的配置和右邊有重復(fù),系統(tǒng)會(huì)使用右邊的值。

2.1.1 默認(rèn)配置

默認(rèn)配置是ThinkPHP“大道至簡(jiǎn),開發(fā)由我”宗旨的核心體現(xiàn),旨在減少開發(fā)者的編碼工作而設(shè)計(jì)的。默認(rèn)情況下,該配置文件路徑為ThinkPHP/Conf/convention.php,對(duì)于一個(gè)新的Web項(xiàng)目,除了數(shù)據(jù)庫(kù)配置可能要自定義之后,幾乎不需要額外的配置定義。

2.1.2 公共配置

所謂公共配置,指的是一個(gè)應(yīng)用下的所有模塊都會(huì)加載的配置文件。默認(rèn)情況下,公共配置的文件路徑為Application/Common/Conf/config.php。

2.1.3 模式配置

在第1章中介紹過模式,這里就不贅述了,舉個(gè)例子,我們?cè)诒镜亻_發(fā)代碼的環(huán)境一般是自己搭建的PHP環(huán)境(本書中為UPUPW集成環(huán)境),權(quán)限都是很開放的。但是如果項(xiàng)目部署到云服務(wù)器上可能就會(huì)運(yùn)行錯(cuò)誤了,國(guó)內(nèi)大部分云服務(wù)器都不可以本地寫文件,ThinkPHP默認(rèn)的Runtime機(jī)制就會(huì)失效。另一個(gè)例子是關(guān)于數(shù)據(jù)庫(kù)的,SAE云引擎為了數(shù)據(jù)庫(kù)的安全性,MySQL連接信息全部以常量定義,該常量是通過改變PHP環(huán)境的參數(shù)設(shè)置的,如果在本地使用該參數(shù)也會(huì)出錯(cuò),ThinkPHP沒有模式定義的時(shí)候,開發(fā)者就需要特別小心配置文件的模式了,如果不小心把本地配置上傳到服務(wù)器將會(huì)導(dǎo)致網(wǎng)站直接出錯(cuò),所以ThinkPHP推出了“運(yùn)行模式”配置。模式配置的文件路徑為Application/Common/Config/config_模式名稱.php,如Application/Common/Config/config_sae.php。

2.1.4 調(diào)試配置

Web程序在正式上線都是在本地開發(fā)調(diào)試的,有時(shí)候本地開發(fā)需要使用本地?cái)?shù)據(jù)庫(kù),服務(wù)器上需要使用線上數(shù)據(jù)庫(kù),為了避免沖突問題,ThinkPHP也定義了“調(diào)試配置”功能,可以方便地配置調(diào)試模式下的各項(xiàng)參數(shù),例如顯示頁(yè)面請(qǐng)求信息的SHOW_PAGE_TRACE參數(shù),本地開發(fā)時(shí)將其設(shè)置為true,提交到服務(wù)器時(shí)設(shè)置為false就可以實(shí)現(xiàn)開發(fā)和線上的隔離。默認(rèn)情況下,調(diào)試配置的文件路徑為Application/Common/Config/debug.php。

2.1.5 場(chǎng)景配置

試想這么一個(gè)場(chǎng)景,筆者有個(gè)項(xiàng)目需要在公司和家里都進(jìn)行開發(fā),家里安裝的是MySQL數(shù)據(jù)庫(kù),而公司安裝的是SQL Server數(shù)據(jù)庫(kù)。為了在這兩種情況下都進(jìn)行正常開發(fā),筆者需要經(jīng)常改變數(shù)據(jù)庫(kù)配置,為了解決這個(gè)問題,ThinkPHP還提供了一種“場(chǎng)景配置”,在入口文件中定義應(yīng)用場(chǎng)景,代碼如下:

   define('APP_STATUS', 'company'); //公司

ThinkPHP就會(huì)自動(dòng)加載Application/Common/Conf/company.php文件。

如果在家里開發(fā),在入口文件中則可以如下定義:

   define('APP_STATUS', 'home'); //家里

ThinkPHP就會(huì)自動(dòng)加載Application/Common/Conf/home.php文件。

與模式不同,場(chǎng)景只會(huì)影響配置文件的加載,而模式會(huì)影響整個(gè)應(yīng)用,例如臨時(shí)文件的寫入等。

2.1.6 模塊配置

每個(gè)模塊都會(huì)自動(dòng)加載本模塊的配置文件,默認(rèn)情況下,模塊配置的文件路徑為Application/模塊名/Conf/config.php。

每個(gè)模塊支持獨(dú)立的模式配置和場(chǎng)景配置。

2.1.7 擴(kuò)展配置

假設(shè)有這么一個(gè)Web項(xiàng)目,后臺(tái)賬戶采用配置文件方式而不是數(shù)據(jù)庫(kù)方式進(jìn)行儲(chǔ)存,按照上文的思想,需要用配置文件保存該賬號(hào)信息,但是將該數(shù)據(jù)直接寫在主配置文件中(本文默認(rèn)公共配置文件)似乎不妥(按照解耦原則,該文件已經(jīng)單獨(dú)存放),這時(shí)候可以新建一個(gè)admin_user.php文件專門用來(lái)存放后臺(tái)賬戶信息,在主配置文件中加載即可。

2.1.8 動(dòng)態(tài)配置

假設(shè)我們?cè)谥髋渲梦募信渲谜?qǐng)求超時(shí)時(shí)間為10秒,但是遇到耗時(shí)操作時(shí),10秒的時(shí)間腳本可能仍未運(yùn)行完畢(例如在瀏覽器中進(jìn)行數(shù)據(jù)庫(kù)的備份操作),這時(shí)候會(huì)導(dǎo)致腳本異常終止,有損用戶體驗(yàn),此時(shí)我們可以通過ThinkPHP的配置操作函數(shù)臨時(shí)更改超時(shí)時(shí)間,操作結(jié)束后再設(shè)置回原值。

主站蜘蛛池模板: 仪征市| 鹤庆县| 体育| 土默特左旗| 城口县| 肃宁县| 古蔺县| 如东县| 偃师市| 华容县| 山丹县| 会东县| 延安市| 麟游县| 商城县| 镇雄县| 视频| 湾仔区| 永城市| 金塔县| 长汀县| 新营市| 辽源市| 洮南市| 双柏县| 密云县| 临城县| 墨玉县| 绥滨县| 鄂尔多斯市| 广丰县| 武安市| 平乐县| 南和县| 乌拉特中旗| 石家庄市| 酉阳| 茶陵县| 庆阳市| 囊谦县| 虹口区|