Переписать конструктор должен быть в порядке.
class Your_Form extends Zend_Form
{
public function __construct($options = null)
{
$this->setMethod('POST');
$this->addElement('hidden', 'hash', array('ignore' => true));
parent::__construct($options);
}
Таким образом, ваши другие формы могут расширяться Your_Form
и вызывать init()
, поэтому он остается согласованным.
class Model_Form_Login extends Your_Form
{
public function init()
{
$this->addElement('input', 'username');
...
Если вы перезаписываете init () - Метод, который вы не используетеВы должны вызвать parent :: __ construct () ...
class Your_Form extends Zend_Form
{
public function init()
{
$this->setMethod('POST');
$this->addElement('hidden', 'hash', array('ignore' => true));
}
... но все ваши расширяющие формы должны вызывать parent :: init (), как это
class Model_Form_Login extends Your_Form
{
public function init()
{
$this->addElement('input', 'username');
...
parent::init();