php - 在 composer.json 的需求中使用条件或?

标签 php dependencies composer-php

我们的 Composer 有问题。我们的库需要一个 either ... or ... 库。 所以基本上它需要这样:

"php-64bit": ">=5.4.0"

OR

"php": ">=5.4.0" AND "ext-example": "^1.0.2"

所以基本上它需要特定的 PHP 版本。 此外,它需要 64 位版本的 PHP 特定库才能工作。

这可能与 Composer 有关吗?如果是这样怎么办?如果不能,我们可以用其他方式解决吗?

最佳答案

我认为您不应该过度定义依赖项。

这两种平台情况都需要 PHP 5.4 或更高版本。我将其添加为唯一的硬依赖。

Composer 具有“建议”功能。您的扩展可能会被建议使用描述性文本来表明只有 32 位平台需要它。

您的代码已经必须处理这种情况,因此您可能已经实现检查以查看您是否使用 64 位(并忽略使用扩展名)。在没有扩展名的情况下,该代码在 32 位上使用时可能会发出错误。

"require": {
    "php": ">=5.4"
},
"suggest": {
    "ext-example":"Required to use this package on 32bit PHP"
}

这避免了让用户向他的 composer.json 添加一个脚本,该脚本只是帮助他理解为什么在第一次尝试安装您的包时失败。无论如何,他都必须阅读文档。

关于php - 在 composer.json 的需求中使用条件或?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33706986/

相关文章:

php - 使用 PHP 调用 Python 网络服务

php - 防止下载 http 内容主体

php - 如何理解 PHP 语句中的 OR 运算符

javascript - 可使用(或不带)_references.ts 自动解析和排序 TypeScript 依赖项的工具?

php - Composer自动加载完整示例?

php - 将 symfony 升级到 3.0 - 错误的分发包版本

php - 如何使用 php ML 解决这个问题?

PHP Composer : Require at least one dependency or another?

clojure - 用Leiningen显示完整的依赖树

android - Flutter 用户应该运行 'flutter pub get' 而不是 'pub get'