【发布时间】:2011-04-01 00:02:43
【问题描述】:
我最近开始研究一个 PHP/JS 表单类,它还将包括一个 SQL 表单构建器(例如,从 sql 和自动插入/更新构建简单表单)。
我尝试了几个类(zend_form、clonefish、PHP Form Builder Class、phorms 等),但还没有找到一个简单、可定制和完整的完整解决方案(服务器端和客户端验证,涵盖所有简单的 html 元素和大量 dhtml 元素:排序、所见即所得、多文件上传、日期选择器、ajax 验证等)
我的问题是为什么有些“类”通过数组实现元素,而另一些通过适当的 OO 类调用实现元素。
例如。 Clonefish(流行的商业php类):
$config = Array(
'username' => Array(
'type' => 'inputText',
'displayname' => 'Username',
validation => Array(
Array(
'type' => 'string',
'minimum' => 5,
'maximum' => 15,
),
),
));
$clonefish = new clonefish( 'loginform', 'test.php', 'POST' );
$clonefish->addElements( $config, $_POST );
然后是其他人,例如。 Zend_Form
$form = new Zend_Form;
$username = new Zend_Form_Element_Text('username');
$username->addValidator(new Zend_Validate_Alnum());
$form->addElement($username);
我意识到 Zend_Form 可以通过类似于 clonefish 的数组传入元素,但为什么要这样做?
有什么好处吗?这似乎使事情变得更加复杂,尤其是在使用像 Komodo 这样的适当 IDE 时。
任何想法都将不胜感激,因为我不想走得太远,并意识到使用数组添加元素有很大的好处(尽管这不是一项需要添加的任务)。
干杯
【问题讨论】:
标签: php javascript oop forms