配置類
該配置類提供一種方法來進行偏好設置。該偏好來源于默認的配置文件(application/config/config.php) 或您自己定制的配置文件。
注意:該類已經自動加載而無需手動啟用。
分析配置文件
默認情況下,CodeIgniter已經有一個主要的配置文件,位于application/config/config.php。如果你用文本編輯器打開你會看到配置項目被存儲在一個叫$config的數組里。
您可以添加您自己的配置項目到這個文件里,或者您更愿意讓您自己的配置項目與原配置項目分開(assuming you even need config items),簡單的創(chuàng)建一個文件并保存到config這個文件夾里就行了。
提示: 如果你想建立一個和主要配置文件一樣格式的配置文件,把你的配置項目建立在一個名為$config的數組中,即使配置文件中有相同的數組名,CodeIgniter也能智能的管理這些文件而不會發(fā)生沖突.
加載配置文件
Note: CodeIgniter 會自動加載主要的配置文件(application/config/config.php), 所以你只需要加載你自己創(chuàng)建的配置文件
有兩種方法來加載配置文件:
-
手動加載
為了加載一個你自定義的配置文件,你需要在 controller 中這樣做:
$this->config->load('filename');
這里的 filename 是你自定義的配置文件的文件名,這個文件名沒有 .php 的擴展名.
如果你需要加載多個自定義配置文件,一般情況下它們會被合并成一個數組。然而,如果在不同的配置文件中存在同名的索引,那么會發(fā)生沖突。為了避免這個問題,你可以把第二個參數設置為 TRUE ,這可以使每個配置文件的內容存儲在一個單獨的數組中,數組的索引就是配置文件的文件名。請看下面的例子:
// 用這樣的方式保存為一個數組: $this->config['blog_settings'] = $config
$this->config->load('blog_settings', TRUE);請閱讀下面名為 獲取配置元素 的部分以了解在這樣的方式下如何取得配置信息
第三個參數允許屏蔽當配置文件不存在時產生的錯誤信息:
$this->config->load('blog_settings', FALSE, TRUE);
-
自動加載
如果你需要一個特定配置文件在全局范圍內都能使用,你可以使系統(tǒng)自動加載它。要自動加載配置,請打開文件 autoload.php,它在 application/config/autoload.php,然后按照文件中的提示增加你想要自動加載的配置文件。
獲取配置元素
從配置文件中檢索元素,使用下面的函數:
$this->config->item('item name');
其中 item name 是 $config 數組中你期望檢索的索引. 例如,要獲得您選擇的語言,你可以這樣做:
$lang = $this->config->item('language');
當試圖獲取的元素不存在時,此函數返回 FALSE (boolean) 。
如果你為了用具體的索引來聲明配置數組(避免上述索引重名問題)而在函數 $this->config->load 中使用了第二個參數,你可以通過指定函數 $this->config->item() 的第二個參數為特定索引名來獲取相關的配置元素。例如:
// 載入一個名為 blog_settings.php 的配置文件,然后把它聲明為一個索引為 "blog_settings" 的數組
$this->config->load('blog_settings', TRUE);
// 在數組 blog_settings 中獲取名為 site_name 的配置元素
$site_name = $this->config->item('site_name', 'blog_settings');
// 另外一種方式:
$blog_config = $this->config->item('blog_settings');
$site_name = $blog_config['site_name'];
設置一項元素
如果你想動態(tài)設置/改變一個現有的配置元素,你可以使用:
$this->config->set_item('item_name', 'item_value');
其中 item_name 是你希望改變的 $config 數組的索引, item_value 是改變后的值.
注意:這里修改的配置元素并不是改變配置文件(application/config/config.php)的值,僅改變當前$this->config->item()方法取到的值
環(huán)境
你可以根據當前的開發(fā)/服務環(huán)境讀取不同的配置文件. ENVIRONMENT 常量在 index.php 定義, 在 處理多環(huán)境 一章有詳細的描述和說明.
一個特定環(huán)境的配置文件, 需要按此路徑創(chuàng)建或者復制一個文件: application/config/{ENVIRONMENT}/{FILENAME}.php
例如,要創(chuàng)建一個僅'production'環(huán)境的 config.php, 你應該:
- 創(chuàng)建文件夾:application/config/production/
- 復制現有的 config.php 到上面的文件夾
- 編輯 application/config/production/config.php 設定你在'production'環(huán)境所需的設置
當你設置 ENVIRONMENT 常量為 'production', 你剛創(chuàng)建的僅'production'環(huán)境的 config.php 配置文件將被加載。
你可以放置以下配置文件到特定環(huán)境的文件夾:
- 默認的 CodeIgniter 配置文件
- 你自己的用戶配置文件
注意: CodeIgniter 會先嘗試加載當前環(huán)境的配置文件。 如果文件不存在,將加載全局配置文件,例如 (application/config/) 。 這意味著你沒有必要把 所有的配置文件放在特定環(huán)境的文件夾里, ? 僅僅把各環(huán)境不同的放進去就行了。
輔助函數
config 類有以下輔助函數:
$this->config->site_url();
該函數得到你網站的 URL,其中包含了你在 config 文件中設置的 "index" 的值。
$this->config->base_url();
This function retrieves the URL to your site, plus an optional path such as to a stylesheet or image.
The two functions above are normally accessed via the corresponding functions in the URL Helper.
$this->config->system_url();
該函數得到 system folder 的URL .
?