Config クラス
Config クラスは、Fuel の設定オプションの殆どすべてを処理することが出来ます。config ファイルの読み込み、値の取得、設定を行う場合、本クラスが常用されます。
設定ファイルの種類
設定を保存するのに、さまざまなファイルレイアウトを使用できます。レイアウトの種類は、ファイル拡張子で決められます。
-
PHP 。デフォルト。PHP ファイルは配列構造を返します。
return array('key' => 'value');
-
INI 。ini ファイルのレイアウトについては、このページ をごらんください。
[group]
key=value
-
YAML 。yaml ファイルのレイアウトについては、このページ をごらんください。
group:
key: value
-
JSON 。json ファイルのレイアウトについては、このページ をごらんください。
{
"group" :
{
"key": "value"
}
}
-
DB 。次のようなテーブル構造を用います。
CREATE TABLE IF NOT EXISTS `config` (
`identifier` char(100) NOT NULL,
`config` longtext NOT NULL,
`hash` char(13) NOT NULL,
PRIMARY KEY (`identifier`)
)
デフォルトでは、'config' というテーブル名を使用します。
app/config/config.php
の中にあるキー config.table_name に使いたいテーブル名を定義することで変更ができます。
ファイルの種類を指定しなかった場合は、Config::load() はデフォルトの 'php' を使用します。
Config グループ
config グループは、設定オプションの範囲を決めるための簡単な方法です。名前の衝突を、グループによって回避します。全ての config ファイル (db.php や routes.php、その他) は、メインの config.php を除いて、その config ファイル名と同名称のグループとして読み込まれます。
get($item, $default = null)
get メソッドは、取得したい設定項目を返します。項目が存在しない場合は $default に記した値を返します。取得した項目がグループであれば、グループ全体を返します。
静的 |
はい |
パラメータ |
パラメータ |
デフォルト |
説明 |
$item |
必須 |
取得したい項目名。ドット (.) で階層を区切ることによって、グループと多次元配列にアクセスすることが出来ます。 |
$default |
null |
(オプション) $item が見つからない時は、$default が返ります。 |
|
返り値 |
$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);
// config/db.php の内容をもつ db グループ全体を読み込みます。
$db_configs = Config::get('db');
// どの db 接続が db config の 'active' にセットされているのかを取得します。
$active_db = Config::get('db.active');
// 下記のように、階層を奥深く探索することが出来ます。
// この例では db group の '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');
// アクティブな 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 |
必須 |
削除したい項目名。 |
|
返り値 |
void |
例 |
// ドット区切りで設定項目を削除します。
Config::delete('blog.items_to_display');
|
load($file, $group = null, $reload = false, $overwrite = false)
load メソッドは設定ファイルをシステムに読み込みます。要求されたファイルについて、config ディレクトリを検索します。オプションとして、名前の衝突を回避するために設定ファイルをグループ化できます。
静的 |
はい |
パラメータ |
パラメータ |
デフォルト |
説明 |
$file |
必須 |
設定ファイルのパスは、config ディレクトリに対する相対パスです。ファイル拡張子を含まないでください (拡張子として ".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 の config ディレクトリに作成されます。
静的 |
はい |
パラメータ |
パラメータ |
デフォルト |
説明 |
$file |
必須 |
設定ファイルのパスは、config ディレクトリに対する相対パスです。ファイル拡張子を含まないでください (拡張子として ".php" であることが決め打ちされています)。読み込まれたパッケージやモジュールの設定ファイルを読み込むために、名前空間のプレフィックスを付けることが出来ます。 |
$config |
必須 |
文字列であれば、保存されるべきグループ名となります。配列であれば、保存されるべき設定を含むと見なされます。 |
|
返り値 |
true なら保存されています。false ならエラーが起こっています。 |
例 |
// グループ名 "foo" として "custom" 設定ファイルを読み込む。
Config::load('custom', 'foo');
// 幾つかの設定項目を更新
Config::set('foo.key', $value);
// 'foo' グループに更新設定を保存 (注意: これはそのグループのすべてを保存することに注意!)
Config::save('custom', 'foo');
// 'foo' モジュール内の 'custom' 設定ファイルに、更新された 'bar' 設定グループを保存
Config::save('foo::custom', 'bar');
|