Zend Framewrok1 フレームワークでは、コンフィグファイルに application.ini を使用することが多いです。ここでは、コンフィグファイルの内容を取得および追加・修正・削除を行うサンプルを掲載しています。
スポンサーリンク
application.ini
ここでは、以下の内容でパラメータが application.ini に設定されているものとします。
(省略) // 2階層 test.key = "test key" test.value = "test value" // 3階層 sample.param.key = "sample key" sample.param.value = "sample value"
application.ini ファイルからパラメータを取得
class IndexController extends Zend_Controller_Action
{
public function indexAction()
{
/*
* application.ini の設定値を取得する
*/
$frontController = Zend_Controller_Front::getInstance();
$config = $frontController->getParam('bootstrap')->getOptions();
$testKey = $config['test']['key']; // test key
$testVal = $config['test']['value']; // test value
$sampleKey = $config['sample']['param']['key']; // sample key
$sampleVal = $config['sample']['param']['value']; // sample value
}
}
パラメータの追加・修正・削除
次に application.ini ファイルの設定値の追加・修正・削除を行うサンプルになります。なお、ZendFramework1.10 以降で使用することができます。詳細はサンプル内のコメントを参照ください。
// application.ini のパスを設定する
$appIni = APPLICATION_PATH . '/configs/application.ini';
// application.ini を読み込み、配列形式で取得する
$zConfig = new Zend_Config_Ini($appIni);
$configArray = $zConfig->toArray();
// セクションを指定してパラメータを追加(修正)
$sectionName = 'production';
// 追加・修正する場合
$configArray[$sectionName]['test']['add'] = "add(modify) param";
// 削除する場合
//unset($configArray[$sectionName]['test']['add']);
// 配列から Zend_Config オブジェクトを生成する
$zConfig = new Zend_Config($configArray);
// writer のインスタンス生成
$writer = new Zend_Config_Writer_Ini();
// 出力するパス、および出力するコンフィグを指定し、ファイルに出力する
// application.ini を指定し上書きしている
$writer->write($appIni, $zConfig, true);
サンプル動作結果
サンプルコードを実行すると、application.ini ファイルは下記のように更新されます。
修正前
[production] phpSettings.display_startup_errors = "1" phpSettings.display_errors = "1"
修正後
[production] phpSettings.display_startup_errors = "1" phpSettings.display_errors = "1" (省略) test.add = "add(modify) param" <--- 追加(修正)される