我不想使用在 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
}
}
现在我的问题是我需要每个标签都有一个对象,每个输入都有一个对象。但是我可能需要一个对象或其他表单元素。最好的方法是使用工厂模式,而不是为每个类设置类。
任何人都可以建议FormBuilder的设计模式和用于标签/输入的模式,或者如何将标签和输入组合成一个类,将其标识为标签或输入或文本区域等......