symfony4: нет расширения, способного загрузить конфигурацию для doctrine_mongodb

У меня проблема с настройкой доктрины odm с Symfony4.1.

Я получил сообщение об ошибке при обновлении композитора, подкоманда cache:clear

Нет расширения, способного загрузить конфигурацию для «doctrine_mongodb» (в /home/thomas/Documents/dev/blade/vm_api/config/packages/doctrine.yaml). Искал пространство имен "doctrine_mongodb", нашел "framework"

Мой composer.json выглядит нормально

    {
    "type": "project",
    "license": "proprietary",
    "require": {
        "php": "^7.1.3",
        "ext-ctype": "*",
        "ext-iconv": "*",
        "alcaeus/mongo-php-adapter": "^1.1.5",
        "doctrine/mongodb-odm": "^1.2.4",
        "doctrine/mongodb-odm-bundle": "^3.5",
        "mongodb/mongodb": "1.3.2",
        "symfony/console": "*",
        "symfony/flex": "^1.1",
        "symfony/framework-bundle": "*",
        "symfony/yaml": "*"
    },
    "require-dev": {
        "symfony/dotenv": "*"
    },
    "config": {
        "preferred-install": {
            "*": "dist"
        },
        "sort-packages": true
    },
    "autoload": {
        "psr-4": {
            "App\\": "src/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "App\\Tests\\": "tests/"
        }
    },
    "replace": {
        "paragonie/random_compat": "*",
        "symfony/polyfill-ctype": "*",
        "symfony/polyfill-iconv": "*",
        "symfony/polyfill-php71": "*",
        "symfony/polyfill-php70": "*",
        "symfony/polyfill-php56": "*",
        "symfony/symfony": "*"
    },
    "scripts": {
        "auto-scripts": {
            "cache:clear": "symfony-cmd",
            "assets:install %PUBLIC_DIR%": "symfony-cmd"
        },
        "post-install-cmd": [
            "@auto-scripts"
        ],
        "post-update-cmd": [
            "@auto-scripts"
        ]
    },
    "conflict": {
        "symfony/symfony": "*"
    }
}

И файл конфигурации с "обычными" параметрами

parameters:
    # Adds a fallback DATABASE_URL if the env var is not set.
    # This allows you to run cache:warmup even if your
    # environment variables are not available yet.
    # You should not need to change this value.
    env(DATABASE_URL): ''

doctrine_mongodb:
  #default_commit_options: ~
  default_database: "%env(DATABASE_NAME)%"
  connections:
    default:
      server: "%env(DATABASE_HOST)%"
      options:
        username: "%env(DATABASE_USER)%"
        password: "%env(DATABASE_PASSWORD)%"
        authSource: "%env(DATABASE_AUTH_SOURCE)%"
        ssl: "%env(DATABASE_SSL%"
        replicaSet: "%env(DATABASE_REPLICA_SET)%"
  document_managers:
    default:
      mappings:
        DocumentBundle:
          type: annotation
          dir: Document/

Я новичок в 4.1, может я что-то не так сделал

заранее спасибо


person Thomas Dupont    schedule 28.09.2018    source источник
comment
Вы тоже проверили config/bundles.php? И обязательно запустили composer install?   -  person NicolasB    schedule 28.09.2018
comment
@NicolasB Да, для установки композитора, но мы должны зарегистрировать пакет у поставщика (включая Doctrine)?   -  person Thomas Dupont    schedule 01.10.2018
comment
Я решил проблему, добавив вручную пакет в bundles.php . Иногда добавление происходит автоматически, иногда нет... Есть идеи по поводу этого странного поведения?   -  person Thomas Dupont    schedule 02.10.2018
comment
@ThomasDupont У меня та же проблема, что и у вас, можете ли вы поделиться тем, что вы добавили именно в bundle.php? Большое спасибо :Р   -  person Kiloumap Mrz    schedule 18.09.2019
comment
@KiloumapMrz это: Doctrine\Bundle\MongoDBBundle\DoctrineMongoDBBundle::class =› ['all' =› true]   -  person Thomas Dupont    schedule 20.09.2019


Ответы (1)


Ваш пакет должен быть автоматически включен, если вы используете Flex. В противном случае вам нужно будет вручную включить пакет, добавив следующую строку в файл config/bundles.php вашего проекта.

// config/bundles.php
<?php

return [
    // ...
    Doctrine\Bundle\MongoDBBundle\DoctrineMongoDBBundle::class => ['all' => true],
];
person BADR AKKAR    schedule 02.05.2020