DoctrineMongoDBBundle得到一个致命的错误在Symfony2中

问题描述:

我在这里按照以下指示: http://symfony.com/doc/2.0/bundles/DoctrineMongoDBBundle/index.htmlDoctrineMongoDBBundle得到一个致命的错误在Symfony2中

我已经安装了DEPS:

#deps 
[doctrine-mongodb] 
    git=http://github.com/doctrine/mongodb.git 

[doctrine-mongodb-odm] 
    git=http://github.com/doctrine/mongodb-odm.git 

[DoctrineMongoDBBundle] 
    git=http://github.com/symfony/DoctrineMongoDBBundle.git 
    target=/bundles/Symfony/Bundle/DoctrineMongoDBBundle 

然后做$ php bin/vendors install

我增加了以下内容:

# app/autoload.php 
$loader->registerNamespaces(array(
    // .... 
    'Doctrine\\Common' => __DIR__.'/../vendor/doctrine-common/lib', 
    'Doctrine\\DBAL' => __DIR__.'/../vendor/doctrine-dbal/lib', 
    'Doctrine\\ODM\\MongoDB' => __DIR__.'/../vendor/doctrine-mongodb-odm/lib', 
    'Doctrine\\MongoDB'   => __DIR__.'/../vendor/doctrine-mongodb/lib', 
    'Doctrine'   => __DIR__.'/../vendor/doctrine/lib', 
    // .... 
)); 

AnnotationRegistry::registerFile(
    __DIR__.'/../vendor/doctrine/lib/Doctrine/ORM/Mapping/Driver/DoctrineAnnotations.php' 
); 
AnnotationRegistry::registerFile(
    __DIR__.'/../vendor/doctrine-mongodb-odm/lib/Doctrine/ODM/MongoDB/Mapping/Annotations/DoctrineAnnotations.php' 
); 

我也是ad DED

# app/AppKernel.php 
$bundles = array(
    //.... 
    new Symfony\Bundle\DoctrineMongoDBBundle\DoctrineMongoDBBundle(), 
    //.... 
); 

我的学说的配置是这样的:

# Doctrine Configuration 
doctrine: 
    dbal: 
     driver: %database_driver% 
     host:  %database_host% 
     port:  %database_port% 
     dbname: %database_name% 
     user:  %database_user% 
     password: %database_password% 
     charset: UTF8 

    orm: 
     auto_generate_proxy_classes: %kernel.debug% 
     auto_mapping: true 

doctrine_mongodb: 
    connections: 
     default: 
      server: mongodb://localhost:27017 
      options: 
       connect: true 
    default_database: dbtest 
    document_managers: 
     default: 
      auto_mapping: true 

但是当我加载应用程序,我得到以下错误:

Fatal error: Class 'Symfony\Bridge\Doctrine\DependencyInjection\AbstractDoctrineExtension' not found in /Volumes/Master/SITES/example/vendor/bundles/Symfony/Bundle/DoctrineMongoDBBundle/DependencyInjection/DoctrineMongoDBExtension.php on line 31 

Call Stack: 
    0.0002  643984 1. {main}() /Volumes/Master/SITES/example/web/app_dev.php:0 
    0.0175 5274704 2. Symfony\Component\HttpKernel\Kernel->handle() /Volumes/Master/SITES/example/web/app_dev.php:31 
    0.0176 5274800 3. Symfony\Component\HttpKernel\Kernel->boot() /Volumes/Master/SITES/example/vendor/symfony/src/Symfony/Component/HttpKernel/Kernel.php:168 
    0.0212 5592040 4. Symfony\Component\HttpKernel\Kernel->initializeContainer() /Volumes/Master/SITES/example/vendor/symfony/src/Symfony/Component/HttpKernel/Kernel.php:127 
    0.0232 5662744 5. Symfony\Component\HttpKernel\Kernel->buildContainer() /Volumes/Master/SITES/example/vendor/symfony/src/Symfony/Component/HttpKernel/Kernel.php:545 
    0.0430 8473952 6. Symfony\Bundle\DoctrineMongoDBBundle\DoctrineMongoDBBundle->getContainerExtension() /Volumes/Master/SITES/example/vendor/symfony/src/Symfony/Component/HttpKernel/Kernel.php:630 
    0.0430 8474568 7. Symfony\Component\ClassLoader\DebugUniversalClassLoader->loadClass() /Volumes/Master/SITES/example/vendor/symfony/src/Symfony/Component/ClassLoader/DebugUniversalClassLoader.php:0 
    0.0437 8623704 8. require('/Volumes/Master/SITES/example/vendor/bundles/Symfony/Bundle/DoctrineMongoDBBundle/DependencyInjection/DoctrineMongoDBExtension.php') /Volumes/Master/SITES/example/vendor/symfony/src/Symfony/Component/ClassLoader/DebugUniversalClassLoader.php:55 

我的应用程序是使用MySQL,但我想评估mongodb。

尝试固定捆绑的版本:

[DoctrineMongoDBBundle] 
    git=http://github.com/symfony/DoctrineMongoDBBundle.git 
    target=/bundles/Symfony/Bundle/DoctrineMongoDBBundle 
    version=v2.0.0 

而且记得要经常使用bin/vendors install - 不bin/vendors update。当然,除非你正在开发Symfony本身。

+0

谢谢,工作!是什么让你想到这个解决方案? – ed209

+1

我一直在使用这个包几个月,并且在我运行'bin/vendors install'来更新包之后,它今天停止工作。所以我认为开发者改变了一些东西。由于我是'主人',这只是时间问题。于是我在捆绑软件的回购中查找了一个标签,并坚持使用它。 –

+0

有同样的问题,这也为我工作。 –