Configクラスは、設定ファイルから値を取得したり、設定ファイルへ値を書き込むメソッドを提供する。
指定した設定項目を削除する。
delete($item)
指定した設定項目の値を返す。
get($item, $default = null)
指定した設定ファイルをシステムに読み込む。
load($file, $group = null, $reload = false, $overwrite = false)
.php
固定であるため、ファイル拡張子は含めない。configディレクトリに対する相対パスで指定する。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);
$item
で指定した設定項目に$value
で指定した値を設定する。
set($item, $value)
FuelPHPでは、APPPATH/config
下に各種設定ファイルがある。
設定ファイル | 説明 |
---|---|
config.php | アプリケーション全般に関する設定 |
routes.php | URIルーティングに関する設定 |
db.php | データベースに関する設定 |
APPPATH/config/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の連想配列を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'),
);
Windowsの構成設定ファイルと同じ形式で記述する。設定ファイルの拡張子は.ini
である。
;コメント
[section1]
key1 = value1
key2 = value2
[section2]
key3 = value3
RubyのYAML形式で記述する。。設定ファイルの拡張子は.yml
である。
group:
key: value
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引数にグループ名を指定する。