0

我想在 symfony 3.4 中有一个应用程序,但在 v4 中有 symfony/dotenv。4.4.8 版本中的dotenv 包支持 symfony/process 3.4。

但是当我运行时composer update,它会失败并且只列出 3.4.* 作为候选版本。这可能受以下限制extra.symfony.require: 3.4.* in composer.json.

我知道它至少在某些情况下有效。我在 symfony 3.4 中有一个项目,它使用symfony/http-client 4.3. 这仅仅是因为没有旧版本才有效吗?

我在哪里可以找到有关依赖限制的更多信息symfony/flex

以下是我知道的一些来源:

  1. https://symfonycasts.com/screencast/symfony5-upgrade/version-constraints#symfony-flex-symfony-extra-require-is-a-soft-requirement
  2. https://github.com/symfony/flex/blob/master/README.md
  3. https://flex.symfony.com/

这是最清晰的一个:

  1. 如何执行作曲家`extra.symfony.require`限制?

什么时候extra.symfony.require是软要求(来自 1. 的文本),这是什么意思?这是否与 4. 匹配?


composer.json无法运行的示例composer require symfony/dotenv:^4.0(使用创建symfony new --version=3.4):

{
    "type": "project",
    "require": {
        "php": "^7.0.8",
        "ext-ctype": "*",
        "ext-iconv": "*",
        "symfony/console": "3.4.*",
        "symfony/dotenv": "3.4.*",
        "symfony/flex": "^1.3.1",
        "symfony/framework-bundle": "3.4.*",
        "symfony/yaml": "3.4.*"
    },
    "config": {
        "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-php70": "*",
        "symfony/polyfill-php56": "*"
    },
    "conflict": {
        "symfony/symfony": "*"
    },
    "extra": {
        "symfony": {
            "allow-contrib": false,
            "require": "3.4.*"
        }
    }
}
4

0 回答 0