Kayıt yöntemi (1) yanı sıra (2) hem de çalışacak tekiz ön denetleyicisi erişen rağmen, her iki yöntem ile bazı büyük dezavantajı var: Ya Zend_Controller_Front
üzerine sert dependeny veya {tanıtmak [(1)]} ve talep anahtar hem de Zend_Controller_Request_Abstract
.
// (1)
// in bootstrap e.g.
Zend_Registry::set('request', Zend_Controller_Front::getInstance()->getRequest());
// in form method
$request = Zend_Registry::get('request');
// (2)
//in form method
$request = Zend_Controller_Front::getInstance()->getRequest();
Ben iyi yolu formun kurucusu yoluyla veya formda bir setter aracılığıyla hatta daha iyi sadece bir dizi olarak talep parametreleri enjekte forma istek nesne enjekte ya olacağını düşünüyorum.
// form class (constructor-injection presumed)
class My_Form extends Zend_Form
{
/**
* @var Zend_Controller_Request_Abstract
*/
protected $_request;
public function __construct(Zend_Controller_Request_Abstract $request, $options = null)
{
parent:: __construct($options);
$this->_request = $request;
}
}
// or inject only parameters
class My_Form extends Zend_Form
{
/**
* @var array
*/
protected $_params;
public function __construct(array $params, $options = null)
{
parent:: __construct($options);
$this->_params= $params;
}
}