Php ZF:如何访问控制器&x27;表单方法中的请求对象?

Php ZF:如何访问控制器&x27;表单方法中的请求对象?,php,zend-framework,request,Php,Zend Framework,Request,如何在表单方法中访问请求对象? 我假设访问控制器的请求对象是可能的 在表单方法中使用ActionHelper,但为 这样的任务似乎过于繁重 或者我应该以某种方式将控制器的请求保存到Zend_注册表并以表单形式访问注册表项吗 $request = Zend_Controller_Front::getInstance()->getRequest() ?尽管注册表方法(1)和访问单体前端控制器(2)都可以工作,这两种方法都有一些主要的缺点:它们引入了对Zend_控制器\u前端或Zend_注册表

如何在表单方法中访问请求对象? 我假设访问控制器的请求对象是可能的 在表单方法中使用ActionHelper,但为 这样的任务似乎过于繁重

或者我应该以某种方式将控制器的请求保存到Zend_注册表并以表单形式访问注册表项吗

$request = Zend_Controller_Front::getInstance()->getRequest()

尽管注册表方法(1)和访问单体前端控制器(2)都可以工作,这两种方法都有一些主要的缺点:它们引入了对
Zend_控制器\u前端
Zend_注册表
和请求键以及
Zend_控制器\u请求摘要
的严格依赖

// (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();
我认为最好的方法是通过表单的构造函数或表单上的setter将请求对象注入表单,或者更好的方法是将请求参数作为数组注入

// 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;
    }       
}

你能举例说明你到底想做什么吗?