Если вы используете те же имена в ручной HTML-форме, что и в Zend_Form
, вы можете просто создать экземпляр формы при получении данных:
public function processFormAction()
{
$form = new My_Form(); // this is your Zend_Form
if ($form->isValid($_POST)) {
// success!
} else {
// failure!
}
}
Нет необходимости использовать возможности рендеринга Zend_Form
, если вы не хотите.
Второй вариант - объединить пользовательскую разметку с элементами формы:
// view-script with $form being the the Zend_Form passed into the view
<form method="<?php echo $form->getMethod() ?>" action="<?php echo $form->getAction()?>">
<div id="elements">
<?php echo $form->element1->renderLabel() . $form->element1->renderViewHelper() ?>
<br />
<?php echo $form->element2->renderLabel() . $form->element2->renderViewHelper() ?>
</div>
<div id="buttons">
<?php echo $form->button1->renderViewHelper() ?>
<?php echo $form->button2->renderViewHelper() ?>
</div>
</form>
В качестве альтернативы, если вы хотите только фильтровать и проверять введенные данные, вы можете избежать всего раздувания Zend_Form
и использовать Zend_Filter_Input
, то есть, просто говоря, Zend_Form
без всех разметка вещи. Поскольку Zend_Filter_Input
может использовать все стандартные и пользовательские фильтры и валидаторы, которые вы можете использовать с Zend_Form
, переход должен быть довольно простым.