0

自早期测试版以来,我在我的 module.config.php 中使用了它:

'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 代码和文档中都找不到更改。

4

2 回答 2

1

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

于 2012-08-13T05:36:19.587 回答
0

正如@superdweebie 提到的,安全漏洞已经关闭,Di 可以实例化非控制器类。
要继续使用 Di 中的控制器,您必须在 Di 配置中将它们列入白名单:

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

另请查看Marco Pivetta 的这篇博文。它解释了如何使用 Di 和控制器。

于 2012-08-14T08:42:01.323 回答