如何在Composer中强制版本依赖库

时间:2019-07-23 12:47:59

标签: php composer-php version libraries

我有一个composer.json,其中包含库 nette / nette ,该库依赖于其他库 nette / deprecated ,并且此嵌套库在较新版本中存在错误。因此,我需要强制Composer加载嵌套库nette / deprecated的先前版本。问题是主库nette / nette的版本必须是“ nette / nette”:“ 〜2.4.0 ”,但是所有2.4版本和2.5版本都取决于有问题的nette / predated。图书馆。如何强制Composer加载嵌套的nette /不建议使用的库的确切所需版本?似乎不可能或我对Composer功能的了解不够。 谢谢。

1 个答案:

答案 0 :(得分:3)

如果您知道某个依赖项存在错误或干扰了代码中的某些内容,则可以在composer.json中将其标记为冲突。

{
    "...",
    "require": {
        "..."
    },
    "conflict": {
        "nette/deprecated": ">2.4.0,<3.0.0"
    }
}

这将排除2.4.0之后且小于3.0.0的所有内容,但是您可以将值更改为所需的任何值。通过这种方式,您可以清楚地交流,某些版本超出了限制,而没有明确将其声明为根依赖项。

另请参阅:https://getcomposer.org/doc/04-schema.md#conflict