作曲家忽略特定提交的composer.json

时间:2018-07-02 23:11:42

标签: php composer-php

我正在尝试使用存储库中的一个非常具体的提交:

"monolog/monolog": "dev-master#7d20351afc85aa23c5795309c9984a1e93d81c27"

发生了什么事,我收到以下错误消息:

Problem 1
    - monolog/monolog dev-master requires php ^7.1 -> your HHVM version does not satisfy that requirement.
    - monolog/monolog dev-master requires php ^7.1 -> your HHVM version does not satisfy that requirement.
    - Installation request for monolog/monolog dev-master#7d20351afc85aa23c5795309c9984a1e93d81c27 -> satisfiable by monolog/monolog[dev-master].

如果我指的是master,那将是合理的,因为它的composer.json确实需要^ 7.1的php。但是,我不需要的specific版本。我认为它会检查主人,而不是我给它的东西。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

这是预期的并得到记录:

  

尽管有时这很方便,但从长远来看,这不应该是您使用软件包的方式,因为它存在技术限制。 仍将从您在哈希之前指定的分支名称中读取composer.json元数据。因此,在某些情况下,它不是一种可行的解决方法,因此您应始终尝试切换到带标签的发行版尽快。

https://getcomposer.org/doc/articles/troubleshooting.md#i-have-locked-a-dependency-to-a-specific-commit-but-get-unexpected-results-

以您为例,您应该可以使用其他分支名称作为解决方法:

"monolog/monolog": "1.x-dev#7d20351afc85aa23c5795309c9984a1e93d81c27"

但是最好的解决方案是切换到常规约束并使用带标签的发行版。该哈希值表示3年的旧版本,您可能应该升级到较新的版本。