[ ZendFramework1 ] application.ini の設定値を取得・追加・修正・削除する

Pocket

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

スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *