リリース 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/ ディレクトリにあります。