ClassNotFoundException: попытка загрузить класс FlattenException из пространства имен

Я разрабатываю приложение с использованием Symfony 2.4 и пакета doctrine mongodb. Я столкнулся с досадной ошибкой:

ClassNotFoundException: попытка загрузить класс «FlattenException» из пространства имен «Symfony \ Component \ Debug \ Exception» в /opt/apps/aff/vendor/doctrine/mongodb-odm/lib/Doctrine/ODM/MongoDB/Cursor.php в строке 455. Вам нужно «использовать» его из другого пространства имен? Возможно, вам нужно добавить оператор использования для одного из следующих: Symfony \ Component \ HttpKernel \ Exception \ FlattenException, Symfony \ Component \ Debug \ Exception \ FlattenException.

Эта ошибка возникает особенно при посещении методов списка админки сонаты. Я столкнулся с этой ошибкой также при игре в классы репозитория.

The exact code is running perfectly on the remote server. But on the local machine this error is occuring. I do not know why. I have run the following code on terminal to see version numbers or git commit ref codes.

$ php composer.phar show -i

Результат на обоих компьютерах практически одинаков. Ниже мой composer.json

{
"name": "symfony/framework-standard-edition",
"license": "MIT",
"type": "project",
"description": "The \"Symfony Standard Edition\" distribution",
"autoload": {
    "psr-0": { "": "src/" }
},
"require": {
    "php": ">=5.3.3",
    "symfony/symfony": "~2.4",
    "twig/extensions": "~1.0",
    "symfony/assetic-bundle": "~2.3",
    "symfony/swiftmailer-bundle": "~2.3",
    "symfony/monolog-bundle": "~2.4",
    "sensio/distribution-bundle": "~2.3",
    "sensio/framework-extra-bundle": "~2.3",
    "sensio/generator-bundle": "~2.3",
    "incenteev/composer-parameter-handler": "~2.0",

    "doctrine/mongodb-odm": "1.0.*@dev",
    "doctrine/mongodb-odm-bundle": "3.0.*@dev",
    "doctrine/doctrine-fixtures-bundle": "dev-master",

    "gedmo/doctrine-extensions": "dev-master",

    "jms/serializer-bundle" : "dev-master",

    "friendsofsymfony/user-bundle": "*",
    "friendsofsymfony/facebook-bundle": "1.2.*@dev",
    "friendsofsymfony/rest-bundle" : "dev-master",

    "nelmio/api-doc-bundle" : "dev-master",

    "sonata-project/core-bundle": "~2.2@dev",
    "sonata-project/admin-bundle": "2.2.*@dev",
    "sonata-project/doctrine-mongodb-admin-bundle":"dev-master",
    "sonata-project/block-bundle": "2.2.*@dev",
    "sonata-project/user-bundle": "2.2.3",
    "sonata-project/easy-extends-bundle" : "dev-master",
    "sonata-project/intl-bundle": "dev-master",

    "knplabs/knp-menu-bundle":"1.1.x-dev",
    "zeitnot/cp_oauth_client" : "dev-master"


},
"scripts": {
    "post-install-cmd": [
        "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
    ],
    "post-update-cmd": [
        "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
        "php app/console assets:install --symlink",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
    ]
},
"config": {
    "bin-dir": "bin"
},
"minimum-stability": "beta",
"extra": {
    "symfony-app-dir": "app",
    "symfony-web-dir": "web",
    "incenteev-parameters": {
        "file": "app/config/parameters.yml",
        "keep-outdated": true        
    },
    "branch-alias": {
        "dev-master": "2.4-dev"
    }
}

}

Я действительно сбит с толку и не знаю, как это сделать. В чем смысл этого досадного исключения?


person zeitnot    schedule 28.03.2014    source источник


Ответы (1)


У меня было то же самое, ошибка была вызвана неправильным типом параметра в методе hint () в Cursor.php. И установка ошибки строгих стандартов PHP для PHP создает ошибку для этого. Это могло быть причиной того, что он нормально работал на удаленном сервере (другие настройки PHP).

Теперь проблема решена, поэтому обновление ваших поставщиков MongoDB должно исправить это. Дополнительная информация

person kevindh89    schedule 02.04.2014
comment
Спасибо! Я уже сделал это, как вы сказали. Это действительно сработало. Это был скучный вопрос. - person zeitnot; 04.04.2014