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" <--- 追加(修正)される