【问题标题】:An exception was raised while creating "MvcTranslator"; no instance returned创建“MvcTranslator”时引发异常;没有返回实例
【发布时间】:2014-02-02 06:15:15
【问题描述】:

我尝试运行 ZF2 应用程序,同时运行时收到错误“An exception was raised while creating "MvcTranslator”;更新作曲家后没有返回实例。

我已将 composer.json 中的最低要求参数从 "minimum-stability": "stable" 更改为 "minimum-stability": "dev"

这是我的 composer.json

{
    "repositories": [
        {
            "type": "composer",
            "url": "https://packages.zendframework.com/"
        }
    ],
    "homepage": "http://framework.zend.com/",
    "require": {
        "php": ">=5.3.3",
        "zendframework/zendframework": "2.*",
        "doctrine/doctrine-orm-module": "*",
        "zendframework/zend-developer-tools": "dev-master",
        "webino/zf2nette-debug": "dev-master",
        "nitecon/zf2-db-session": "1.*",
    "zf-commons/zfc-user": "*",
        "nitecon/zfcuser-ldap": "dev-master",
    "zf-commons/zfc-rbac":"dev-master"
    },
    "minimum-stability": "dev"
}

下面是堆栈错误。

                try {
892:                $circularDependencyResolver[$depKey] = true;
893:                $instance = call_user_func($callable, $this, $cName, $rName);
894:                unset($circularDependencyResolver[$depKey]);
895:            } catch (Exception\ServiceNotFoundException $e) {
896:                unset($circularDependencyResolver[$depKey]);
897:                throw $e;
898:            } catch (\Exception $e) {
899:                unset($circularDependencyResolver[$depKey]);
900:                throw new Exception\ServiceNotCreatedException(
901:                    sprintf('An exception was raised while creating "%s"; no instance returned', $rName),
902:                    $e->getCode(),
903:                    $e
904:                );

谁能帮我解决这个问题,我正在谷歌搜索。

【问题讨论】:

    标签: php zend-framework zend-framework2 composer-php


    【解决方案1】:

    我认为我没有最好的解决方案,但这可以避免错误。

    使用翻译器对象创建服务。 编辑您的模块之一,添加服务 MvcTranslator。例如,我编辑了我的 module/MyApplication/Module.php

    namespace MyApplication
    
    use Zend\I18n\Translator\Translator;
    /* Some other "use" */
    
    class Module {
    
        /* Code of module */
    
        public function getServiceConfig() {
            return array(
                'factories' => array(
                    'MvcTranslator' => function($service) {
                        return new Translator();
                    },
                    /* Other services */
                ),
            );
        }
    

    这对我有用,因为我不使用翻译。如果您需要翻译工作,请检查: http://framework.zend.com/manual/2.2/en/modules/zend.i18n.translating.html

    【讨论】:

      【解决方案2】:

      如果您使用 Zend Framework 2.2 或更高版本。

      试试这个。

      Comment out or remove 
        //use Zend\I18n\Translator\Translator;     // comment out for ZF 2.2.0
        //USE THIS for 2.2
       use Zend\Mvc\I18n\Translator;`         // comment in for ZF 2.2.0 
      

      【讨论】:

        猜你喜欢
        • 2020-09-15
        • 2012-10-16
        • 2023-03-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多