更新到2.1.0后ZF2 Di致命错误

时间:2013-02-01 09:24:18

标签: php dependency-injection zend-framework2

将我的ZF2 Libary更新到最新版本后,我的应用程序抛出致命错误。在上一篇。版本1.0.6一切正常。我一直在寻找错误的来源,但我找不到它,我也不知道。也许Module.Config中的DI注入阵列有问题。希望有人知道这里发生了什么:)

当我在模块配置中移除我的孔DI设置时...我的应用程序无法工作,因为DI不工作但致命错误消失。 :/

致命错误:

  

致命错误:未捕获的异常'Zend \ Di \ Exception \ MissingPropertyException',消息'缺少实例/对象,用于Zend \ Mvc \ Router \ Http \ Segment :: __ construct'的参数路由... \ Zend \ Di \ Di.php:699

我的DI模块配置:

    'di'                 => array(
        'definition' => array(
           'class' => array(
                'Application\View\Helper\LastActions'               => array(
                    'setBenutzerMapper' => array(
                        'required' => true
                    ),
                 ),
                 [...]
           )
         )
     ),

谢谢

2 个答案:

答案 0 :(得分:0)

在github有一个问题,我今天早上遇到了同样的问题: https://github.com/zendframework/zf2/issues/3625

在修补程序发布之前,quickfix是将路由器配置从使用像“Zend \ Mvc \ Router \ Http \ Segment”之类的长名称更改为“Segment”,如下所示:

'router' => array(
    'routes' => array(
        'restful' => array(
            'type' => 'Segment',
            ...

答案 1 :(得分:-1)

同样的问题正在发生在我身上。我正在使用来自https://github.com/Domi-cc/SmartyModule的SmartyModule。它在module.config.php上使用'di',但我看不到具有长名称的路由器配置

'di' => array(
    'instance' => array(
        'alias' => array(
            // entity manager
            'smarty_engine' => 'Smarty',
        ),

        'SmartyModule\View\Renderer\SmartyStrategy' => array(
            'parameters' => array(
                'smarty' => 'SmartyModule\View\Renderer\SmartyRenderer',
            ),
        ),
. . .