Symfony 3.1 作曲家冲突

Posted

技术标签:

【中文标题】Symfony 3.1 作曲家冲突【英文标题】:Symfony 3.1 composer conflicts 【发布时间】:2021-10-27 23:30:27 【问题描述】:

我正在恢复旧的 Symfony 项目。 无法“作曲家安装”。我试图对删除 composer.lock 的包进行更改,更改包的版本。错误正在成倍增加。 有没有办法解决这个冲突?

问题 1 - symfony/debug 被锁定到 dev-master 版本并且没有请求更新这个包。 - 只能安装其中之一:symfony/symfony[v3.1.0]、symfony/debug[dev-master]。 symfony/symfony 替换了 symfony/debug,因此不能与之共存。 - symfony/symfony 被锁定到 v3.1.0 版本并且没有请求更新这个包。

composer.json:


    "name": "symfony/framework-standard-edition",
    "license": "MIT",
    "type": "project",
    "description": "The \"Symfony Standard Edition\" distribution",
    "autoload": 
        "psr-4":  "": "src/" ,
        "classmap": [ "app/AppKernel.php", "app/AppCache.php" ]
    ,
    "autoload-dev": 
        "psr-4":  "Tests\\": "tests/" 
    ,
    "require": 
        "php": ">=5.5.9",
        "symfony/symfony": "3.1",
        "twig/extensions": "^1.4",
        "doctrine/orm": "^2.5",
        "doctrine/doctrine-bundle": "^1.6",
        "doctrine/doctrine-cache-bundle": "^1.2",
        "doctrine/doctrine-migrations-bundle": "^1.2",
        "symfony/swiftmailer-bundle": "^2.3",
        "symfony/monolog-bundle": "^2.8",
        "symfony/polyfill-apcu": "^1.0",
        "symfony/debug": "3.2.x-dev",
        "sensio/distribution-bundle": "^5.0",
        "sensio/framework-extra-bundle": "^3.0.2",
        "incenteev/composer-parameter-handler": "^2.0",
        "liuggio/excelbundle": "^2.1",
        "stof/doctrine-extensions-bundle": "1.2.*@dev",
        "friendsofsymfony/user-bundle": "^2.0",
        "friendsofsymfony/jsrouting-bundle": "^2.0",
        "jms/serializer-bundle": "^1.1",
        "yethee/enum-bundle": "^2.0",
        "webit/eval-math": "^1.0",
        "yavin/symfony-form-tree": "^1.0",
        "knplabs/knp-snappy-bundle": "^1.4",
        "friendsofsymfony/rest-bundle": "^2.1"
    ,
    "require-dev": 
        "sensio/generator-bundle": "^3.0",
        "symfony/phpunit-bridge": "^3.0"
    ,
    "scripts": 
        "symfony-scripts": [
            "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::prepareDeploymentTarget"
        ],
        "post-install-cmd": [
            "@symfony-scripts"
        ],
        "post-update-cmd": [
            "@symfony-scripts"
        ]
    ,
    "config": 
        "bin-dir": "bin",
        "platform": 
            "php": "5.5.9"
        
    ,
    "minimum-stability": "dev",
    "extra": 
        "symfony-app-dir": "app",
        "symfony-bin-dir": "bin",
        "symfony-var-dir": "var",
        "symfony-web-dir": "web",
        "symfony-tests-dir": "tests",
        "symfony-assets-install": "relative",
        "incenteev-parameters": 
            "file": "app/config/parameters.yml"
        ,
        "branch-alias": 
            "dev-master": "3.2-dev"
        
    

【问题讨论】:

删除“symfony/debug”行允许作曲家运行。正如它所说:“symfony/symfony 取代了 symfony/debug,因此不能与之共存。” 我试过了。它走得更远,但后来我遇到了很多看起来与这个包有关的错误。 这些通常非常棘手,尽管我很惊讶作曲家安装没有使用 composer.lock 文件。您是否尝试使用作曲家 1(而不是作曲家版本 2)?无论如何,最好创建一个新的 3.4 项目,然后尝试安装各种依赖项。生成的 composer.json 至少可以为您提供一个起点。 你第一次是如何安装这些包的?在 v3.1 中同时需要 symfony/symfony v3.2 中的symfony/debug 在任何时候都不应该工作。我看到了两种可能的选择:错误地删除错误,或者使用 Symfony 3.4 重新启动项目 【参考方案1】:

我不知道这个软件包版本是如何到达那里的。 我之前试图从packagist 中选择最接近的版本号 这次我选择了最简单的方法来解决这个问题:)。 当它最终运行时,我一直在逐个降级到 3.1.0。

【讨论】:

仅供参考,除非您确实有答案,否则请勿使用答案。如果合适,您可以发表评论,也可以使用其他信息更新原始问题。 请添加更多详细信息以扩展您的答案,例如工作代码或文档引用。

以上是关于Symfony 3.1 作曲家冲突的主要内容,如果未能解决你的问题,请参考以下文章

Symfony 5 作曲家更新失败并带有安全检查器

如何使用相互依赖的作曲家同时安装 2 个 Symfony 包

当供应商在 Symfony 2.1 中不受作曲家管理时,在哪里注册自动加载?

在共享 2 个环境的机器上运行 Symfony 3.2 项目中的作曲家安装

从 Symfony 3.4 升级到 4:升级 symfony 时出错

运行服务器 Symfony 4