ZF2 DI Setter Injection不再工作

时间:2012-08-08 11:28:04

标签: model-view-controller dependency-injection zend-framework2

我已经在我的module.config.php中使用了这个,因为早期的beta:

'di' => array(
    'instance' => array(
        'alias' => array(
            'Model' => 'Application\Model\Application',
        ),
        'Application\Controller\IndexController' => array(
            'parameters' => array(
                'Model' => 'Model',
            )
        ),
    ),
),

在indexController中有这个:

protected $Model;

public function setModel (\Application\Model\Model $Model)
{
    $this->Model = $Model;
}

但是自从我从beta5更新到rc2后它停止了工作。我无法找到ZF2代码和文档中的更改。

2 个答案:

答案 0 :(得分:1)

关闭安全漏洞,改变DI用于控制器的方式。看到: https://github.com/zendframework/zf2/pull/2005

答案 1 :(得分:0)

正如@superdweebie所说,安全漏洞被关闭,Di可以实例化非控制器类 要继续使用Di中的控制器,您必须在Di config中将它们列入白名单:

return array(
    'di' => array(
        'allowed_controllers' => array(
            // controllers list goes here
        ),
        //...
    ),
);

同时检查this blog post by Marco Pivetta。 它解释了如何使用Di和控制器。