composer.json 文件中的管道和双管道有什么区别?例如:
"^1.0.0 || ^2.0.0"
和
'^1.0.0|^2.0.0'
它们是相同的。
如果您查看 VersionParser 类 (https://github.com/composer/semver/blob/1dd67fe56c0587d0d119947061a6bfc9863c101c/src/VersionParser.php#L237),您可以看到以下代码:
$orConstraints = preg_split('{s*||?s*}', trim($constraints));
正如我们在正则表达式中看到的,在第二个管道之后有一个 ?,使其成为可选的。
似乎只记录了双管。 (https://getcomposer.org/doc/articles/versions.md#range)
我认为这是作曲家或逻辑运算符的旧语法。我找到了这个参考:http://qpleple.com/understand-composer-versions(搜索管道字符)
在引言中它说:
以下是 Composer 文档的一些摘录,重新组织为 更好地了解软件包版本和稳定性的工作原理
但我在当前的作曲家文档中找不到任何参考,然后我认为这是来自旧版本的文档