W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
配置類用于獲取配置參數(shù),這些參數(shù)可以來自于默認(rèn)的配置文件(application/config/config.php), 也可以來自你自定義的配置文件。
注解
該類由系統(tǒng)自動(dòng)初始化,你無需手工加載。
CodeIgniter 默認(rèn)有一個(gè)主要的配置文件,位于 application/config/config.php 。 如果你使用文本編輯器打開它的話,你會(huì)看到配置項(xiàng)都存儲(chǔ)在一個(gè)叫做 $config 的數(shù)組中。
你可以往這個(gè)文件中添加你自己的配置項(xiàng),或者你喜歡將你的配置項(xiàng)和系統(tǒng)的分開的話, 你也可以創(chuàng)建你自己的配置文件并保存到配置目錄下。
注解
如果你要?jiǎng)?chuàng)建你自己的配置文件,使用和主配置文件相同的格式,將配置項(xiàng)保存到名為 $config 的數(shù)組中。 CodeIgniter 會(huì)智能的管理這些文件,所以就算數(shù)組名都一樣也不會(huì)沖突(假設(shè)數(shù)組的索引沒有相同的)。
注解
CodeIgniter 會(huì)自動(dòng)加載主配置文件(application/config/config.php),所以你只需要加載你自己 創(chuàng)建的配置文件就可以了。
有兩種加載配置文件的方式:
要加載你自定義的配置文件,你需要在 控制器 中使用下面的方法:
$this->config->load('filename');
其中,filename 是你的配置文件的名稱,無需 .php 擴(kuò)展名。
如果你需要加載多個(gè)配置文件,它們會(huì)被合并成一個(gè)大的 config 數(shù)組里。盡管你是在不同的配置文件中定義的, 但是,如果有兩個(gè)數(shù)組索引名稱一樣的話還是會(huì)發(fā)生名稱沖突。為了避免沖突,你可以將第二個(gè)參數(shù)設(shè)置為 TRUE , 這樣每個(gè)配置文件中的配置會(huì)被存儲(chǔ)到以該配置文件名為索引的數(shù)組中去。例如:
// Stored in an array with this prototype: $this->config['blog_settings'] = $config
$this->config->load('blog_settings', TRUE);
請(qǐng)閱讀下面的 “獲取配置項(xiàng)” 一節(jié),學(xué)習(xí)如何獲取通過這種方式加載的配置。
第三個(gè)參數(shù)用于抑制錯(cuò)誤信息,當(dāng)配置文件不存在時(shí),不會(huì)報(bào)錯(cuò):
$this->config->load('blog_settings', FALSE, TRUE);
如果你發(fā)現(xiàn)有一個(gè)配置文件你需要在全局范圍內(nèi)使用,你可以讓系統(tǒng)自動(dòng)加載它。 要實(shí)現(xiàn)這點(diǎn),打開位于 application/config/ 目錄下的 autoload.php文件, 將你的配置文件添加到自動(dòng)加載數(shù)組中。
要從你的配置文件中獲取某個(gè)配置項(xiàng),使用如下方法:
$this->config->item('item_name');
其中 item_name 是你希望獲取的 $config 數(shù)組的索引名,例如,要獲取語言選項(xiàng), 你可以這樣:
$lang = $this->config->item('language');
如果你要獲取的配置項(xiàng)不存在,方法返回 NULL 。
如果你在使用 $this->config->load 方法時(shí)使用了第二個(gè)參數(shù),每個(gè)配置文件中的配置 被存儲(chǔ)到以該配置文件名為索引的數(shù)組中,要獲取該配置項(xiàng),你可以將 $this->config->item() 方法的第二個(gè)參數(shù)設(shè)置為這個(gè)索引名(也就是配置文件名)。例如:
// Loads a config file named blog_settings.php and assigns it to an index named "blog_settings"
$this->config->load('blog_settings', TRUE);
// Retrieve a config item named site_name contained within the blog_settings array
$site_name = $this->config->item('site_name', 'blog_settings');
// An alternate way to specify the same item:
$blog_config = $this->config->item('blog_settings');
$site_name = $blog_config['site_name'];
如果你想動(dòng)態(tài)的設(shè)置一個(gè)配置項(xiàng),或修改某個(gè)已存在的配置項(xiàng),你可以這樣:
$this->config->set_item('item_name', 'item_value');
其中,item_name 是你希望修改的 $config 數(shù)組的索引名,item_value 為要設(shè)置的值。
你可以根據(jù)當(dāng)前的環(huán)境來加載不同的配置文件,index.php 文件中定義了 ENVIRONMENT 常量,在 處理多環(huán)境 中有更詳細(xì)的介紹。
要?jiǎng)?chuàng)建特定環(huán)境的配置文件,新建或復(fù)制一個(gè)配置文件到 application/config/{ENVIRONMENT}/{FILENAME}.php 。
例如,要新建一個(gè)生產(chǎn)環(huán)境的配置文件,你可以:
當(dāng)你將 ENVIRONMENT 常量設(shè)置為 'production' 時(shí),你新建的生產(chǎn)環(huán)境下的 config.php 里的配置將會(huì)加載。
你可以放置以下配置文件到特定環(huán)境的目錄下:
注解
CodeIgniter 總是先加載全局配置文件(例如,application/config/ 目錄下的配置文件), 然后再去嘗試加載當(dāng)前環(huán)境的配置文件。這意味著你沒必要將所有的配置文件都放到特定環(huán)境的配置目錄下, 只需要放那些在每個(gè)環(huán)境下不一樣的配置文件就可以了。另外,你也不用拷貝所有的配置文件內(nèi)容到 特定環(huán)境的配置文件中,只需要將那些在每個(gè)環(huán)境下不一樣的配置項(xiàng)拷進(jìn)去就行了。定義在環(huán)境目錄下的配置項(xiàng), 會(huì)覆蓋掉全局的配置。
classCI_Config
$config
所有已加載的配置項(xiàng)組成的數(shù)組。
$is_loaded
所有已加載的配置文件組成的數(shù)組。
item($item[, $index=''])
參數(shù):
返回: Config item value or NULL if not found
返回類型: mixed
獲取某個(gè)配置項(xiàng)。
set_item($item, $value)
參數(shù):
返回類型: void
設(shè)置某個(gè)配置項(xiàng)的值。
slash_item($item)
參數(shù):
返回: Config item value with a trailing forward slash or NULL if not found
返回類型: mixed
這個(gè)方法和 item() 一樣,只是在獲取的配置項(xiàng)后面添加一個(gè)斜線,如果配置項(xiàng)不存在,返回 NULL 。
load([$file = ''[, $use_sections = FALSE[, $fail_gracefully = FALSE]]])
參數(shù):
返回: TRUE on success, FALSE on failure
返回類型: bool
加載配置文件。
site_url()
返回: Site URL
返回類型: string
該方法返回你的網(wǎng)站的 URL ,包括你在配置文件中設(shè)置的 "index" 值。
這個(gè)方法通常通過 URL 輔助函數(shù) 中函數(shù)來訪問。
base_url()
返回: Base URL
返回類型: string
該方法返回你的網(wǎng)站的根 URL ,你可以在后面加上樣式和圖片的路徑來訪問它們。
這個(gè)方法通常通過 URL 輔助函數(shù) 中函數(shù)來訪問。
system_url()
返回: URL pointing at your CI system/ directory
返回類型: string
該方法返回 CodeIgniter 的 system 目錄的 URL 。
注解
該方法已經(jīng)廢棄,因?yàn)檫@是一個(gè)不安全的編碼實(shí)踐。你的 system/ 目錄不應(yīng)該被公開訪問。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: