Config 类別

Config 类別处理 Fuel 裡幾乎所有的配置選項。無論何時你需要載入一个配置档案、取得一个值或設定一个值,你都使用此类別。

Config 档案类型

你可以使用不同的档案佈局來儲存你的配置,佈局类型是由副档名決定:

如果你沒有指定档案类型,Config::load() 将預設为 'php' 类型。

Config 群組

配置群組是一个劃分配置選項範圍的简单方式。这可避免命名衝突。所有配置档案(db.php、routes.php、等等)被載入到相同名稱的群組,除了主要的 config.php 档案。

get($item, $default = null)

get 方法回傳想要的配置項目。如果該項目不存在会回傳 $default。如果你正要取回的項目是一个群組,会回傳整个群組。

靜態
參数
參数 預設 描述
$item 必要 要取回項目的名稱。可藉由點(.)分隔層級來存取群組和多維陣列。
$default null (選擇性)如果 $item 沒找到,要回傳的預設值。
回傳 $item,如果 $item 不存在的話是 $default。如果 $item 是一个群組,会是一个包含整个群組的 陣列
範例
// 輸出在 config.php 中目前的語言設定
echo Config::get('language');

// 預設情況下,不存在的項目将回傳 null
if (Config::get('items_to_display') === null)
{
	throw new Exception('You must set the number of items to display in config.php');
}

// 你可以像这樣为不存在的項目設定一个預設值
$items_to_display = Config::get('items_to_display', 10);

// 这将載入整个 db 群組,該群組是 config/db.php 的內容
$db_configs = Config::get('db');

// 这将取得在 db 配置中的設定为 的 db 連線
$active_db = Config::get('db.active');

// 你可以像这樣多層深入。
// 这将取回 db 群組中 'dev' 的主機名稱
$dev_host = Config::get('db.dev.connection.hostname');

set($item, $value)

set 方法設定一个所給的 $item$value$item 可以被點(.)分隔,就像 get()

靜態
參数
參数 預設 描述
$item 必要 要設定的項目名稱。可藉由點(.)分隔層級來設定群組和多維陣列。如果 $item 不存在将被建立。
$value 必要 要設定給 $item 的值。
回傳 此方法總是回傳 true
範例
// 設定目前語言
Config::set('language', 'en');

// 設定 active db 連線
Config::set('db.active', 'test');

// 設定一个你可以稍後使用的自訂值
Config::set('items_to_display', 5);

// 你也可以使用點去建立自訂的群組和項目
Config::set('blog.items_to_display', 5);

delete($item)

delete 方法移除一个所給的 $item$item 可以被點(.)分隔,就像 set()get()

靜態
參数
參数 預設 描述
$item 必要 要刪除的項目名稱。
回傳
範例
// 使用點符號移除一个配置項目
Config::delete('blog.items_to_display');

load($file, $group = null, $reload = false, $overwrite = false)

load 方法讀取一个配置档案進入系统中。它在配置目录搜尋請求档案。你可以選擇性的将配置档案分組,以避免命名衝突。

靜態
參数
參数 預設 描述
$file 必要 相對於配置目录,指向配置档案的路徑。不要包含副档名(假設是 ".php")。你可以用模組名稱前綴它,從已載入的模組來強制載入一个配置档案。
$group null (選擇性)要使用的群組名稱。如果設为 true,那麼一个與 $file 同名的群組会被建立。如果沒有設定或是 null,那麼載入的配置将與根配置合併。
$reload false (選擇性)如果設为 true,強制重新載入請求的配置,抹去與要被載入的配置档案相關的快取配置項目。
$overwrite false (選擇性)如果設为 true,載入的配置項目将以非遞迴方法與已載入的項目合併,且将覆寫多維陣列的陣列值,而非合併。
回傳 包含被載入的配置陣列。如果配置档案已经被載入,那麼将回傳 false
範例
// 合併 "custom" 配置档案和根配置。
Config::load('custom');

// 載入 "custom" 配置档案進入名为 "custom" 的群組。
Config::load('custom', true);

// 載入 "custom" 配置档案進入名为 "foo" 的群組。
Config::load('custom', 'foo');

// 從 foo 模組載入 "custom" 配置档案進入名为 "bar" 的群組。
Config::load('foo::custom', 'bar');

save($file, $config)

save 方法儲存一个配置档案進入系统。它在配置目录搜尋請求档案。如果沒有找到存在的档案,配置档案将被建立在 APPPATH 的配置目录。

靜態
參数
參数 預設 描述
$file 必要 相對於配置目录,指向配置档案的路徑。不要包含副档名(假設是 ".php")。你可以用命名空間前綴它,從已載入的套件或模組來載入一个配置档案。
$config 必要 如果是字串,它指定一个要儲存的群組名稱。如果是一个陣列,它被假設为包含要儲存的配置。
回傳 true 如果配置被儲存,false 如果发生错误
範例
// 載入 "custom" 配置档案進入名为 "foo" 的群組。
Config::load('custom', 'foo');

// 更新一些配置項目
Config::set('foo.key', $value);

// 儲存更新的配置群組 'foo'(注:将儲存該群組的任何東西 )
Config::save('custom', 'foo');

// 儲存更新的配置群組 'bar' 到 'foo' 模組的 'custom' 配置档案
Config::save('foo::custom', 'bar');