如何在symfony 4.0中配置DoctrineMongoDBBundle

如何在symfony 4.0中配置DoctrineMongoDBBundle,mongodb,symfony,doctrine,symfony-3.3,symfony4,Mongodb,Symfony,Doctrine,Symfony 3.3,Symfony4,我试图在Symfony 4.0中使用DoctrineMongoDBBundle。我能找到的唯一文件 Symfony 4没有参数.yml或配置.yml 如何配置Symfony 4.0使DoctrineMongoDBBundle工作?特定的MongoDB配置现在应该位于config/packages中的一个专用文件中,并且具有与SF3app/config/config.yml相同的内容 对于mongodb_服务器参数,您可以在parameters部分下的config/services.yml中进行设

我试图在Symfony 4.0中使用
DoctrineMongoDBBundle
。我能找到的唯一文件

Symfony 4没有
参数.yml
配置.yml


如何配置Symfony 4.0使
DoctrineMongoDBBundle
工作?

特定的MongoDB配置现在应该位于
config/packages
中的一个专用文件中,并且具有与SF3
app/config/config.yml
相同的内容


对于
mongodb_服务器
参数,您可以在
parameters
部分下的
config/services.yml
中进行设置,但最好使用环境变量,如。

@jmleroux的建议是正确的

要在symfony 4.0+php7.2.1中安装DoctrineMongoDBBundle,需要执行一些额外的步骤

  • 将以下内容添加到composer.json

    • **“alcaeus/mongo php适配器”:
    • “^1.1”,“条令/mongodb odm包”:“^3.0”
    • “条令/mongodb odm”:“^1.2.0”**
  • 请注意,“alcaeus/mongo php适配器”:“^1.1”仅在使用php7时才是必需的

  • 更新编写器,确保没有错误发生
  • 添加使用Symfony\Bundle\FrameworkBundle\Controller\Controller到 您的控制器,并从控制器扩展您自己的控制器
  • 按照@jmleroux的建议去做

  • 下面是我在debian系统上运行它所遵循的步骤

    设置php 设置用于安装mongodb驱动程序的pecl 安装mongodb驱动程序 将mongodb扩展添加到php配置文件 将依赖项添加到composer.json 将doctrine_mongodb配置添加到config/packages/doctrine.yaml 将mongodb连接配置添加到.env文件 将MongoDb捆绑包添加到config/bundles.php 最后一步
    apt-get update && apt-get install --assume-yes wget gnupg gnupg2
    
    apt -y install lsb-release apt-transport-https ca-certificates
    wget https://packages.sury.org/php/apt.gpg
    apt-key add apt.gpg
    echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php7.4.list
    apt-get update
    apt-get install -y php7.2 php7.2-cli php7.2-common php7.2-dev php7.2-mysqli php7.2-xml php7.2-mbstring
    
    apt-get install -y php-pear
    
    pecl install mongodb
    
    echo "extension=mongodb.so" >> /etc/php/7.2/cli/php.ini
    
    "alcaeus/mongo-php-adapter": "^1.1",
    "doctrine/mongodb-odm-bundle": "^3.0",
    "doctrine/mongodb-odm": "^1.2.0"
    
    doctrine_mongodb:
        default_commit_options: ~
        auto_generate_proxy_classes: '%kernel.debug%'
        auto_generate_hydrator_classes: '%kernel.debug%'
        connections:
            default:
                server: '%env(MONGODB_URL)%'
                options: 
                    username: '%env(MONGODB_USERNAME)%'
                    password: '%env(MONGODB_PASSWORD)%'
        default_database: '%env(MONGODB_DB)%'
        document_managers:
            default:
                auto_mapping: true
                mappings:
                    App:
                        is_bundle: false
                        type: annotation
                        dir: '%kernel.project_dir%/src/Document'
                        prefix: App\Document\
                        alias: App
    
    MONGODB_URL=mongodb://localhost:27017
    MONGODB_DB=databasename
    MONGODB_USERNAME=username
    MONGODB_PASSWORD=password
    
    Doctrine\Bundle\MongoDBBundle\DoctrineMongoDBBundle::class => ['all' => true],
    
    composer update && composer install