2015-12-22 251 views
1

我有几个关于作曲家的问题:作曲家版本问题

1)哪个操作员应该更好地在客户项目中使用? ^

2)当我指定:

"behat/behat": "~1.3" 

,这是否意味着它会采取所有版本< 2.0例如 1.3,1.3.4,1.3.7,1.4,1.5.7 ...还是只计算第二个数字(1.3,1.4,1.5,1.6 ...)?

3)当我specifiy:

"behat/behat": "^1.3" 

如何在这里的行为,对于2号)。

是否还有其他特殊情况,在指定版本号时需要注意?


p.s我已经阅读了composer versions docs

+2

该文档对我来说似乎很清楚 – RiggsFolly

+0

'〜' - 接受任何只改变最后一位数字的内容;'^' - 接受任何不会改变第一个数字的内容(唯一的例外是1.0之前的版本)至于你的第一个问题,这完全取决于你的项目是什么 – raina77ow

回答

2

1)哪个操作员应该更好地在客户项目中使用? ^或〜?

优选插入符号^代替~运算符。

2 + 3)是什么意思,当我指定:"behat/behat": "~1.3"

~1.3相当于>=1.3 <2.0.0

简单:

~设置一个最低版本,并允许最后一个版本的数字上去,同时保持BC安全

详细:

  • 将取回一个版本开始具有最低版本的1.3系列的下边界,可能1.3.0
  • 将与1.3.*1.4.*等进行(所有版本)
  • ,但它仍将版本的版本上边界下方2.0.0

主要版本(此处从1.*.*2.*.*)的切换表示向后兼容性可能中断(请参阅语义版本控制标准)。 软件包管理器将避免获取重大更改以保持软件依赖关系的正常工作。

是否还有其他特殊情况,在指定版本号时需要注意?

有一些特殊情况下,例如获取“DEV-大师”和发展依赖稳定开发等“特殊情况。

但问题是过于宽泛,提供一个很好的答案。再问,

+0

感谢您的解释从文档中我找不到它会的部分,在这两种情况下,检查1.3。*,1.4。*,1.5。*。说“〜1.3”时。 – user3746259

+1

最后一个例子:〜1.3与^ 1.3相同,但是〜1.3.1与^ 1.3.1不同,因为第一个永远不会达到1.4,第二个永远是<2.0? – user3746259