我不想使用已经完成的在PHP中构建表单的库。我想用自己的设计模式写自己的作品。我新设计模式,所以我需要知道哪种设计模式最适合在PHP中动态构建表单。使用哪种设计模式动态构建表单。 PHP
例如到目前为止,我得到的东西,如:
class FormBuilder {
private $formName;
private $formAttributes; //array('ID' => ?, 'Classes' => array(?,?) ...
private $formStyle; //Css styling of form
private Label $labels; //a collection of label objects holding bunch labels
private Input $inputs; //a collection of input objects holding bunch inputs
/* constructor to initialize everything */
/* GET/SET methods for each of the above private variables */
....
public function generateHTML() {
//takes above information and builds HTML and returns html
}
}
我现在的问题是,我需要为每个标签的对象,并为每个输入的对象。 Howerver我可能需要有一个对象或其他表单元素。最好的办法是用这个代替每个班都会使用工厂模式。
任何人都可以建议FormBuilder和图案设计模式用于标签/输入或如何标签和输入合并成一个类标识为标签或输入或文本域等等
为什么要为标签和输入使用不同的类?您可以简单地在输入对象上设置“标签”属性。您只需在呈现控件及其相关标签时使用该属性。 – 2013-03-18 19:01:40
我想将Input,Label,TextArea和其他表单元素类合并为一个,这样我就不必有束类。不知道要使用哪种模式 – GGio 2013-03-18 19:04:02
由于您在问题中提到了“构建表单”。最好的设计模式将是建设者模式http://sourcemaking.com/design_patterns/builder/php/1#code – Bart 2013-03-18 19:16:30