Nullyのぶろぐ

仙台で働くエンジニアの日記

iniファイルを利用し、Form要素の生成

Zend_FormでForm要素を作成する際に、設定項目などをiniファイルへ隔離して、本体ソースを見やすくする場合にselect要素のムltiOptionsの指定の仕方で迷ったので覚え書き程度に・・・。

作ってみた

iniファイルを利用する際に、どうしてもmultiOptionsの設定が分からなかったので、以下のようにしました。

$config = new Zend_Config_Ini("[path_to_iniFile]/form.ini", "register") ;

$form = new Zend_Form($config) ;

$selectElement = $form->getElement("[select]") ;

$select->setMultiOptions(array("foo" => "FOO", "bar" => "BAR")) ;

echo $form->render();

ラジオ、チェックボックスにも同じことが出来ます。

説明

Zend_Config_Ini等のiniファイル解析クラスは引数を2つ取りますが、第2引数でセクション([]で囲まれた箇所)を指定出来るので、form.iniを作成し、セクション単位で利用するフォームを形成しています。

その後、Zend_Formに解析済配列を渡す事で初期段階の要素の作成が完了します。

Zend_Formオブジェクトを作成したら、multiOptionsを指定する要素を抜き出します。(getElement())

その後抜き出した要素($select)の関数「setMultiOptions()」を呼び出し、値を設定します。

multiOptionsに指定する値が多すぎる場合などはこういった方法で設定するのが良いかもしれません。

iniファイルって

便利なんですね・・・