指定PHP版本的Composer依赖项

ami*_*mik 6 php composer-php

是否可以告诉composer仅在使用指定的PHP版本时才安装依赖项?

原因:我的库使用了password_hash函数,该函数在5.5+中可用,并且有一个兼容库ircmaxell/password-compat for PHP 5.4.但是,在PHP 5.5+上安装此库完全没有意义.那么,是否有可能告诉作曲家只在<5.5版本上运行时才安装ircmaxell/password-compat?

短篇小说让问题更加清晰 - 我想告诉作曲家:

IF php version < 5.5:
    install ircmaxell/password-compat
ELSE:
    skip ircmaxell/password-compat
Run Code Online (Sandbox Code Playgroud)

提前致谢.

PS请仅发布直接答案如何执行此操作,而不是任何变通办法或建议删除5.4支持.我也可以拿出来,我在这里寻找智能解决方案:)

Eve*_*ert 3

简短的回答是“这是不可能的”。

这种依赖性并不是很大。为什么不直接让它安装呢?如果您使用的是 PHP 5.5,则仍将使用内置密码函数。

您还可以创建password-compat一个可选的依赖项 ( suggests)。那么问题是维护人员需要将其与您的应用程序一起安装。

最后,您可以制作一个辅助虚拟包。假设您的包名为“Acme”,则可以创建一个依赖于password_compat 和您的主项目的辅助“Acme-php54”。这会将依赖项保留在您的项目之外,但我认为最简单的方法是只要您打算支持 PHP 5.4,就始终安装它,并在 PHP 5.4 停产后不久将其删除。