Symfony:降级 PHP 版本

时间:2021-01-14 08:20:23

标签: symfony composer-php

在我的初始环境中,我有一个 PHP 7.2.5。 但是在生产环境,版本是7.2.1。

我想降级 PHP 版本,但依赖项需要 7.2.5(localhost:8000 工作正常)。

{
    "name": "symfony/website-skeleton",
    "type": "project",
    "license": "MIT",
    "description": "A skeleton to start a new Symfony website",
    "minimum-stability": "dev",
    "prefer-stable": true,
    "require": {
        "php": ">=7.2",
        "ext-ctype": "*",
        "ext-iconv": "*",
        "knplabs/knp-menu-bundle": "^3.1",
        "sensio/framework-extra-bundle": "^5.1",
        "symfony/asset": "*",
        "symfony/console": "*",
        "symfony/dotenv": "*",
        "symfony/expression-language": "*",
        "symfony/flex": "^1.3.1",
        "symfony/form": "5.2.*",
        "symfony/framework-bundle": "*",
        "symfony/http-client": "*",
        "symfony/intl": "*",
        "symfony/mailer": "*",
        "symfony/mime": "*",
        "symfony/monolog-bundle": "^3.1",
        "symfony/notifier": "*",
        "symfony/orm-pack": "*",
        "symfony/process": "*",
        "symfony/security-bundle": "5.2.*",
        "symfony/serializer-pack": "*",
        "symfony/string": "*",
        "symfony/translation": "*",
        "symfony/twig-pack": "*",
        "symfony/validator": "*",
        "symfony/web-link": "*",
        "symfony/yaml": "*"
    },
    "require-dev": {
        "doctrine/doctrine-fixtures-bundle": "^3.4",
        "symfony/debug-pack": "*",
        "symfony/maker-bundle": "^1.0",
        "symfony/profiler-pack": "*",
        "symfony/test-pack": "*"
    },
    "config": {
        "optimize-autoloader": true,
        "preferred-install": {
            "*": "dist"
        },
        "sort-packages": true
    },
    "autoload": {
        "psr-4": {
            "App\\": "src/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "App\\Tests\\": "tests/"
        }
    },
    "replace": {
        "symfony/polyfill-ctype": "*",
        "symfony/polyfill-iconv": "*",
        "symfony/polyfill-php72": "*"
    },
    "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": "*"
    },
    "extra": {
        "symfony": {
            "allow-contrib": false,
            "require": "5.2.*"
        }
    }
}

我该如何解决这个错误?现在,如果我不使用任何 composer 命令,那很好,但是我想如果我使用任何 composer require 我会因为 PHP 版本而出错?

如何同时降级所有依赖项而不是 php 版本?

enter image description here

1 个答案:

答案 0 :(得分:0)

Symfony 5.2 需要 PHP 7.2.5,因此您无法将 Symfony 5.2 与任何较低的 PHP 版本一起使用。与 PHP 7.2.1 兼容的最新 Symfony 版本为 v4.4。

要执行Symfony的降级,这是您需要检查的部分:

    "extra": {
        "symfony": {
            "allow-contrib": false,
            "require": "5.2.*"
        }
    }

它特别要求 symfony/flex 使用 Symfony 5.2。如果您想降级 Symfony,请在此处编辑版本并运行 composer update


请记住,当需要所有 Symfony 组件而没有任何特定版本限制时,此方法效果最佳。 symfony/security-bundle 应与所有其他组件一样与 * 要求一起使用