Zend Form:如何将参数传递给构造函数?

And*_*rew 7 php phpunit zend-framework zend-form

我正试图测试我的表格.它将构建其他对象,所以我需要一种方法来模拟它们.我尝试将它们传递给构造函数...

class Form_Event extends Zend_Form
{
    public function __construct($options = null, $regionMapper = null)
    {
        $this->_regionMapper = $regionMapper;
        parent::__construct($options);
    }
Run Code Online (Sandbox Code Playgroud)

......但我得到一个例外:

Zend_Form_Exception: Only form elements and groups may be overloaded; variable of type "Mock_Model_RegionMapper_b19e528a" provided
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

Gor*_*don 13

快速查看源代码,可以Zend_Form看出__set()方法中引发了异常.触发该方法是因为您$_regionMapper在不存在时即时分配.

在类中声明它,它应该工作正常,例如

class Form_Event extends Zend_Form
{
    protected $_regionMapper;

    public function __construct($options = null, $regionMapper = null)
    {
        $this->_regionMapper = $regionMapper;
        parent::__construct($options);
    }
Run Code Online (Sandbox Code Playgroud)

请参阅PHP手册中有关Magic Methods的章节.