FuelPHP Configクラス

Configクラスは、設定ファイルから値を取得したり、設定ファイルへ値を書き込むメソッドを提供する。

delete

指定した設定項目を削除する。

delete($item)
$item
削除する設定項目

get

指定した設定項目の値を返す。

get($item, $default = null)
$item
値を取得する設定項目
$default
$item で指定した設定項目が存在しない場合、$default で指定したデフォルト値を返す。

load

指定した設定ファイルをシステムに読み込む。

load($file, $group = null, $reload = false, $overwrite = false)
$file
設定ファイルのパス。ファイル拡張子は.php固定であるため、ファイル拡張子は含めない。configディレクトリに対する相対パスで指定する。

save

saveメソッドは設定ファイルを保存するメソッドである。設定ファイルが存在しない場合、APPPATH/config/ディレクトリ下にファイルを新規作成する。

static boolean save($file, $config = null)
$file
設定ファイルをAPPPATH/config/ディレクトリに対する相対パスで指定する。拡張子は.php固定であるため、$fileに拡張子を含めてはいけない。PHP形式でのみ保存可能であり、INI形式、YAML形式およびJSON形式では保存できない。
$config
文字列を指定した場合、保存するグループ名となり、指定したグループの設定のみ保存する。配列を指定した場合、指定した配列データを保存する。

Config::saveメソッドで保存できるのはPHP形式のみである。INI形式で保存したい場合は次のようにする。

$ini = parse_ini_file('config.ini');
$ini['foo'] = 'bar';
$fp = fopen('config.ini', 'w');
foreach ($ini as $key => value) {
  fputs($fp, "$key = $value\n");
}
fclose($fp);

set

$itemで指定した設定項目に$valueで指定した値を設定する。

set($item, $value)

設定ファイル

FuelPHPでは、APPPATH/config下に各種設定ファイルがある。

設定ファイル説明
config.phpアプリケーション全般に関する設定
routes.phpURIルーティングに関する設定
db.phpデータベースに関する設定

config.php

APPPATH/config/config.phpは、アプリケーション全般に関する設定ファイルである。

config.php
キー説明
log_date_format ログに出力する日付と時刻の書式
log_file ログファイルの名前
log_path ログを保存するディレクトリのパス
log_threshold 出力するログのレベル
url_suffix FuelPHPによって生成されるURLに追加されるサフィックスを指定する。サフィックスが拡張子の場合は、ドット(.)を含める必要がある。
ログレベル
ログレベル説明
Fuel::L_NONEログを出力しない
Fuel::L_ERRORエラーログを出力
Fuel::L_WARNINGエラーログ及び警告ログを出力
Fuel::L_DEBUGエラーログ、警告ログ及びデバッグログを出力
Fuel::L_INFOエラーログ、警告ログ、デバッグ及び情報ログを出力
Fuel::L_ALLすべてのログを出力

アプリケーションの設定ファイルはapp/config/下に配置する。設定ファイルはPHP形式、INI形式、YAML形式及びJSON形式のいずれかで記述する。

PHP形式

PHPの連想配列をreturnする形式で記述する。設定ファイルの拡張子は.phpである。php.iniと同じ形式。

/* コメント */
return array(
  'key1' => 'value1',
  'key2' => 'value2',
);

PHP形式の設定の場合、配列の配列やクラスのスタティックメソッドを呼び出すことも可能である。

return array(
  'key1' => 'value1',
  'key2' => array('key2_1' => 'value2_1', 'key2_2' => 'value2_2'),
  'key3' => Uri::create('myapp/index'),
);

INI形式

Windowsの構成設定ファイルと同じ形式で記述する。設定ファイルの拡張子は.iniである。

;コメント
[section1]
key1 = value1
key2 = value2

[section2]
key3 = value3

YAML形式

RubyのYAML形式で記述する。。設定ファイルの拡張子は.ymlである。

group:
key: value

JSON形式

JavaScriptで利用されるJSON形式で記述する。設定ファイルの拡張子は.jsonである。

{
"group":
  {
    "key": "value"
  }
}

設定ファイルの読み出し

デフォルトのconfig.php以外に設定した設定値は、手動でロードする必要がある。設定ファイルのロードにはConfig::loadメソッドを使用する。

load($file, $group = null, $reload = false, $overwrite = false)
Config::load('custom');

上記の例では、設定ファイルのcustom.phpをロードする。第1引数で設定ファイルの名前を指定するが、拡張子の.phpは記述する必要はない。

PHP形式以外で設定ファイルを記述している場合には、

Config::load('custom.ini');

のように拡張子も記述する。

設定ファイルをロードするタイミングは、コントローラのbeforeメソッドでロードすることが多い。

設定値のグループ化

php.iniや他の設定ファイルとの設定値の重複を防ぐために、設定ファイルの値をグループ化することができる。

Config::load('custom', true);

第2引数にTRUEを指定することで、custom.phpの設定値はファイル名と同じcustomグループに格納される。この設定値を参照するには、

Config::get('custom.key1');

のようにドットで区切ってグループ名とキー名を指定する。

また、グループ名を任意に指定したいときは、

Config::load('custom', 'group1');

のように第2引数にグループ名を指定する。