CodeIgniter 處理多環(huán)境

2018-07-21 15:38 更新

處理多環(huán)境

開(kāi)發(fā)者常常希望當(dāng)系統(tǒng)運(yùn)行在開(kāi)發(fā)環(huán)境或生產(chǎn)環(huán)境中時(shí)能有不同的行為, 譬如,在開(kāi)發(fā)環(huán)境如果程序能輸出詳細(xì)的錯(cuò)誤信息將非常有用,但是在 生產(chǎn)環(huán)境這將造成一些安全問(wèn)題。

ENVIRONMENT 常量

CodeIgniter 默認(rèn)使用 $_SERVER['CI_ENV'] 的值作為 ENVIRONMENT 常量, 如果 $_SERVER['CI_ENV'] 的值沒(méi)有設(shè)置,則設(shè)置為 'development'。在 index.php 文件的頂部,你可以看到:

define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'development');

$_SERVER['CI_ENV'] 的值可以在 .htaccess 文件或 Apache 的配置文件中 使用 SetEnv 命令進(jìn)行設(shè)置,Nginx 或其他 Web 服務(wù)器也有類(lèi)似的設(shè)置方法。 或者你可以直接刪掉這個(gè)邏輯,根據(jù)服務(wù)器的 IP 地址來(lái)設(shè)置該常量。

使用這個(gè)常量,除了會(huì)影響到一些基本的框架行為外(見(jiàn)下一節(jié)), 你還可以在開(kāi)發(fā)過(guò)程中使用它來(lái)區(qū)分當(dāng)前運(yùn)行的是什么環(huán)境。

對(duì)默認(rèn)框架行為的影響

CodeIgniter 系統(tǒng)中有幾個(gè)地方用到了 ENVIRONMENT 常量。這一節(jié)將描述 它對(duì)框架行為有哪些影響。

錯(cuò)誤報(bào)告

如果將 ENVIRONMENT 常量設(shè)置為 'development' ,當(dāng)發(fā)生 PHP 錯(cuò)誤時(shí)錯(cuò)誤信息會(huì)顯示到瀏覽器上。與之相對(duì)的,如果將常量設(shè)置為 'production' 錯(cuò)誤輸出則會(huì)被禁用。在生產(chǎn)環(huán)境禁用錯(cuò)誤輸出是個(gè) 不錯(cuò)的安全實(shí)踐。

配置文件

另外,CodeIgniter 還可以根據(jù)不同的環(huán)境加載不同的配置文件, 這在處理譬如不同環(huán)境下有著不同的 API key 的情況時(shí)相當(dāng)有用。 這在 配置類(lèi) 文檔中的“環(huán)境”這一節(jié) 有著更詳細(xì)的介紹。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)