Конфликты композитора при установке stof / doctrine-extensions-bundle на symfony 5

#composer-php

#композитор-php

Вопрос:

при попытке установки через composer require stof/doctrine-extensions-bundle я получаю кучу сообщений, сообщающих мне, что установить пакет невозможно: Your requirements could not be resolved to an installable set of packages.

Часть выходных данных:

   Problem 1
    - Conclusion: remove doctrine/cache 1.10.2
    - Conclusion: don't install doctrine/cache 1.10.2
    - doctrine/common 2.2.1 conflicts with doctrine/cache[1.10.2].
    - doctrine/common 2.2.2 conflicts with doctrine/cache[1.10.2].
    - doctrine/common 2.2.3 conflicts with doctrine/cache[1.10.2].
    - doctrine/common 2.3.0 conflicts with doctrine/cache[1.10.2].
    - Installation request for doctrine/cache (locked at 1.10.2) -> satisfiable by doctrine/cache[1.10.2].
    - Installation request for stof/doctrine-extensions-bundle ^1.4 -> satisfiable by stof/doctrine-extensions-bundle[v1.4.0].
    - Conclusion: don't install doctrine/common 3.0.2|install doctrine/common 2.2.1|install doctrine/common 2.2.2|install doctrine/common 2.2.3|install doctrine/common 2.3.0
    - Conclusion: remove doctrine/common 3.0.2|install doctrine/common 2.2.1|install doctrine/common 2.2.2|install doctrine/common 2.2.3|install doctrine/common 2.3.0
    - stof/doctrine-extensions-bundle v1.4.0 requires gedmo/doctrine-extensions ^2.3.4 -> satisfiable by gedmo/doctrine-extensions[v2.3.10, v2.3.11, v2.3.12, v2.3.4, v2.3.5, v2.3.6, v2.3.7, v2.3.8, v2.3.9, v2.4.0, v2.4.1, v2.4.10, v2.4.11, v2.4.12, v2.4.13, v2.4.14, v2.4.15, v2.4.16, v2.4.17, v2.4.18, v2.4.19, v2.4.2, v2.4.20, v2.4.21, v2.4.22, v2.4.23, v2.4.24, v2.4.25, v2.4.26, v2.4.27, v2.4.28, v2.4.29, v2.4.3, v2.4.30, v2.4.31, v2.4.32, v2.4.33, v2.4.34, v2.4.35, v2.4.36, v2.4.37, v2.4.38, v2.4.39, v2.4.4, v2.4.40, v2.4.41, v2.4.42, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.4.9].
    - gedmo/doctrine-extensions v2.3.10 requires doctrine/common ~2.4 -> satisfiable by doctrine/common[2.12.0, 2.13.0, 2.13.1, 2.13.2, 2.13.3, v2.10.0, v2.11.0, v2.4.0, v2.4.1, v2.4.2, v2.4.3, v2.5.0, v2.5.1, v2.5.2, v2.5.3, v2.6.0, v2.6.1, v2.6.2, v2.7.0, v2.7.1, v2.7.2, v2.7.3, v2.8.0, v2.8.1, v2.9.0].
  

Я устанавливал в таком порядке:

 composer require profiler --dev 
composer require logger 
composer require debug --dev 
composer require annotations 
composer require sec-checker --dev 
composer require twig 
composer require symfony/maker-bundle --dev 
composer require doctrine 
composer require form
composer require stof/doctrine-extensions-bundle
  

Последнее является первым, которое выдало ошибку

композитор: json:

 {
    "type": "project",
    "license": "proprietary",
    "require": {
        "php": ">=7.2.5",
        "ext-ctype": "*",
        "ext-iconv": "*",
        "composer/package-versions-deprecated": "^1.11",
        "doctrine/doctrine-bundle": "^2.1",
        "doctrine/doctrine-migrations-bundle": "^3.0",
        "doctrine/orm": "^2.7",
        "sensio/framework-extra-bundle": "^5.6",
        "symfony/console": "5.1.*",
        "symfony/dotenv": "5.1.*",
        "symfony/flex": "^1.9",
        "symfony/form": "5.1.*",
        "symfony/framework-bundle": "5.1.*",
        "symfony/monolog-bundle": "^3.5",
        "symfony/twig-bundle": "^5.1",
        "symfony/yaml": "5.1.*",
        "twig/extra-bundle": "^2.12|^3.0",
        "twig/twig": "^2.12|^3.0"
    },
    "require-dev": {
        "sensiolabs/security-checker": "^6.0",
        "symfony/debug-bundle": "^5.1",
        "symfony/maker-bundle": "^1.21",
        "symfony/stopwatch": "^5.1",
        "symfony/var-dumper": "^5.1",
        "symfony/web-profiler-bundle": "^5.1"
    },
    "config": {
        "optimize-autoloader": true,
        "preferred-install": {
            "*": "dist"
        },
        "sort-packages": true
    },
    "autoload": {
        "psr-4": {
            "App\": "src/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "App\Tests\": "tests/"
        }
    },
    "replace": {
        "paragonie/random_compat": "2.*",
        "symfony/polyfill-ctype": "*",
        "symfony/polyfill-iconv": "*",
        "symfony/polyfill-php72": "*",
        "symfony/polyfill-php71": "*",
        "symfony/polyfill-php70": "*",
        "symfony/polyfill-php56": "*"
    },
    "scripts": {
        "auto-scripts": {
            "cache:clear": "symfony-cmd",
            "assets:install %PUBLIC_DIR%": "symfony-cmd",
            "security-checker security:check": "script"
        },
        "post-install-cmd": [
            "@auto-scripts"
        ],
        "post-update-cmd": [
            "@auto-scripts"
        ]
    },
    "conflict": {
        "symfony/symfony": "*"
    },
    "extra": {
        "symfony": {
            "allow-contrib": false,
            "require": "5.1.*"
        }
    }
}
  

Комментарии:

1. Что вы пытались отладить проблему? Можете ли вы поделиться более подробной информацией о других пакетах, которые вы уже установили?

2. Пожалуйста, добавьте всю информацию в свой вопрос, отредактировав его. Кроме того, это может помочь увидеть ограничения версии из вашего composer.json — можете ли вы их добавить?

3. Пожалуйста, используйте composer why-not , чтобы проверить, применяются ли еще какие-либо условия

4. извините, Нико. Боюсь, я не знаю, как использовать why-not. composer почему-не stof /doctrine-extensions-bundle просто выдает мне сообщение «Не удалось найти пакет»stof / doctrine-extensions-bundle» в вашем проекте.

Ответ №1:

Благодаря этому списку требований, которые вы установили doctrine/common в версии v3. Последняя стабильная версия gedmo/doctrine-extensions еще не совместима с этой, что вы можете видеть в некоторых выпусках.

У вас есть два варианта: либо подождать еще несколько дней или недель, пока этот пакет не станет совместимым, либо понизить doctrine/common его до версии v2. Это возможно с помощью

composer require doctrine/common:"^2.11" doctrine/persistence:"^1.3"

Комментарии:

1. Нико, это было здорово. У меня это сработало. Спасибо большое. И для обновления через несколько недель я просто использую composer update или мне нужно использовать другую команду?

2. Что ж, Composer работает здесь немного странно: технически вы можете удалить два пакета Doctrine сразу, прямо сейчас. Обновление пакета расширений работает как обычно после выпуска обновления