Phalconで設定ファイルを読み込む
Phalconでの各種フォーマットで記述された設定ファイルの取り扱い方。
概要
- PhalconではPhalcon\Configで設定を扱う
- 各種フォーマット用のアダプターが用意されているので読み込む時はそれを使う
読み込み方
ファイルを読み込む場合
ファイルから読み込む場合はアダプターの引数に読み込むファイルパスを渡すだけでOK。
以下はini形式のファイルを読み込む例。
$config = new Phalcon\Config\Adapter\Ini('path/config.ini');
大抵の形式には標準で対応しているけど、YAMLは何故か標準では提供されておらずincubatorでライブラリが提供されている。
形式 | アダプター | 備考 |
---|---|---|
INI | Phalcon\Config\Adapter\Ini | |
JSON | Phalcon\Config\Adapter\Json | |
PHP | Phalcon\Config\Adapter\Php | 配列をreturnするPHPのファイルを読み込ませる |
YAML | Phalcon\Config\Adapter\Yaml | incubator |
直接PHPの配列をPhalcon\Configのオブジェクトにする場合
配列から直接オブジェクトを作る場合はアダプターを使わずPhalcon\Configの引数に配列を渡せばOK。
$config = new Phalcon\Config(array( "database" => array( "adapter" => "Mysql", "host" => "localhost", "username" => "scott", "password" => "cheetah", "dbname" => "test_db" ), "phalcon" => array( "controllersDir" => "../app/controllers/", "modelsDir" => "../app/models/", "viewsDir" => "../app/views/" ) ));
※Phalcon公式サイトのリファレンスからコピペ
使い方
参照方法はこんな感じ。
$config = new Phalcon\Config(array( 'hoge' => 123, 'huge' => array(4,5,6) )); echo $config->hoge; // 123 // 配列の場合はこんな感じ echo $config->huge[0]; // 4 // foreachで配列っぽく扱うこともできる foreach ($config->huge as $value) { echo $value; // 4 5 6 }
複数の設定を読み込んでマージすることもできる。
$config1 = new Phalcon\Config(array( 'hoge' => 'AAA', 'huge' => 'BBB' )); $config2 = new Phalcon\Config(array( 'huge' => 'CCC', 'piyo' => 'DDD' )); $config1->merge($config2); foreach ($config1 as $key => $value) { echo $key . '=>' . $value . "\n"; } 【実行結果】 $ php config.php hoge=>AAA huge=>CCC piyo=>DDD
同じキーが存在する場合は引数に入れた方が優先されて上書きされるので同じキーがある場合は注意が必要。