我对packagist中的'〜'和'^'之间的区别感到有点困惑,
composer.json文件中的代码示例:
"require": {
"doctrine/dbal": "^2.6", //this is using '^' symbol
"garygreen/pretty-routes": "~0.0.6" //this is using '~' symbol
},
有人可以帮我解释一下吗?
答案 0 :(得分:2)
〜运算符最好通过示例解释:~1.2等于> = 1.2 <2.0.0,而~1.2.3等于> = 1.2.3 <1.3.0。正如您所看到的,它对于尊重语义版本控制的项目非常有用。常见的用法是标记您所依赖的最小次要版本,例如~1.2(允许任何内容,但不包括2.0)。
^运算符的行为非常相似,但它更接近语义版本控制,并且总是允许不间断的更新。例如,^ 1.2.3相当于&gt; = 1.2.3&lt; 2.0.0,因为直到2.0都不会破坏向后兼容性。对于1.0之前的版本,它也考虑到安全性,并将^ 0.3视为&gt; = 0.3.0 <0.4.0。
来自:https://getcomposer.org/doc/articles/versions.md#tilde-version-range-