Я недавно начал работать над классом форм PHP / JS, который также будет включать построитель форм SQL (например, создание простых форм из sql и автоматические вставки / обновления).
Я пробовал несколько классов (zend_form, clonefish, PHP Form Builder Class, phorms и т. Д.), Но пока не нашел полного решения, которое было бы простым, настраиваемым и полным (как на стороне сервера, так и на стороне клиента)., охватывает все простые html-элементы и множество dhtml-элементов: сортировка, wysiwyg, загрузка файла mutli, средство выбора даты, проверка 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, но зачем это делать?
Есть ли какая-то выгода?Кажется, что все усложняется, особенно при использовании надлежащей IDE, такой как Komodo.
Буду признателен за любые мысли, так как я не хочу заходить слишком далеко и осознавать, что использование массивов для добавления элементов принесло большую пользу(хотя это не будет большой задачей для добавления).
Cheers