デフォルト値の設定
HTML_QuickForm2は、基本的には前バージョン(HTML_QuickForm)をPHP5のE_STRICTに対応させてリライトしてあるとのことであったが、メソッドで変更とかもあるようだ。まぁ「まだアルファ版だから」なのかもしれないけれど。
新バージョンで、フォーム要素にデフォルト値を設定する際、前バージョンで使っていたsetDefaultsメソッドは使えない(というか、このメソッドは新バージョンでは存在していない)。HTML_QuickForm2での記述はこうだ。
$myForm=& new HTML_QuickForm2(‘myForm’);
$myForm->addElement(‘text’,’q1′);
$myForm->addDataSource(
new HTML_QuickForm2_DataSource_Array(
array(
‘q1’=>’php’,
)
)
);
q1という名前のテキストボックスを作成して、デフォルト値として「php」と表示させる例だ。以前であれば、このように記述していた。
$myForm->>setDefaults(array(‘q1’=>’php’));
お手軽でよかった。
新バージョンでの記述を見るとsetDefaultsメソッドから
addDataSourceメソッドに変更になっている。その引数はHTML_QuickForm2_DataSource_Arrayオブジェクトになり、さらにそのオブジェクトのコンストラクタに引数としてデフォルト値を渡す、という具合になっている。
別にこれはこれでいいのだが、「PHP5対応のためのリライト」という観点で提供されるのであれば、非推奨でいい(将来的になくなってもいい)のでsetDefaultsメソッドが用意されるべきだと思う。
まぁ「他人の土俵で相撲を取っている」ようなものだから理想論だけ言ってみた。