2011-11-02 18 views
11

Sto seguendo le indicazioni qui: deps http://symfony.com/doc/2.0/bundles/DoctrineMongoDBBundle/index.htmlDoctrineMongoDBBundle ottenendo un errore fatale in Symfony2

ho installato:

#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 

poi ha fatto $ php bin/vendors install

ho aggiunto il seguente:

# 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' 
); 

Ho anche annuncio ded

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

E la mia configurazione dottrina assomiglia:

# 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 

Ma quando carico l'applicazione ottengo il seguente errore:

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 

mia app stava usando MySQL ma voglio valutare mongodb.

risposta

26

provare a fissare la versione del bundle:

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

E ricordate di usare sempre bin/vendors install - non bin/vendors update. A meno che tu non stia sviluppando Symfony, naturalmente.

+0

Grazie, ha funzionato! Cosa ti ha fatto pensare a questa soluzione? – ed209

+1

Utilizzo questo bundle da un paio di mesi e ha smesso di funzionare oggi dopo aver eseguito 'bin/vendors install' per aggiornare i bundle. Quindi ho pensato che gli sviluppatori hanno cambiato qualcosa. Dato che ero in "master", era solo una questione di tempo. Così ho cercato un tag nel repository del bundle e mi sono attaccato. –

+0

Aveva lo stesso problema e questo ha funzionato anche per me. –

Problemi correlati