リリース 3.0 より前には、フォーム出力のロジックは HTML_QuickForm クラスに実装されていました。 これには 2 つの問題がありました。
クラスの肥大化 (80 以上ものメソッド!)
新しい出力ロジックの追加 (すなわち、テンプレートエンジンを使用するなど) が難しい
リリース 3.0 で、新しい仕組みが実装されました。フォーム出力のロジックは HTML_QuickForm_Renderer を継承したクラスで実装されるようになり、 かの有名な書籍 "Design Patterns" の中の Visitor デザインパターンに基づいた振る舞いをするようになりました。 これにより、以下のような利点を得られます。
そのメソッドがほんとうに必要なときにだけ メソッドのコードが読み込まれます。
新しい出力メソッドを追加するのがきわめて簡単です。
レンダラの主な使用手順は、どれを使用した場合でもほぼ同じです。
<?php
// レンダラクラスをインクルードします
require_once 'HTML/QuickForm/Renderer/FooBar.php';
// レンダラのインスタンスを作成します
$renderer =& new HTML_QuickForm_Renderer_FooBar($options);
// なんらかのカスタマイズをします
$renderer->adjustSomething('element1', '...');
// ...
$renderer->adjustSomething('elementN', '...');
// フォームを処理します
$form->accept($renderer);
// 結果を出力します
$renderer->toFooBar();
?> |
使用例について マニュアルに記載されている使用例は、ほんとうに基本的なものです。 デフォルトレンダラのより複雑な例は HTML_QuickForm の docs/ ディレクトリにあります。 その他のレンダラの例については docs/renderers/ ディレクトリにあります。