在我的composer.json文件中,代字号(〜)是什么意思?

Got*_*bel 107 syntax symfony composer-php

我在composer.json文件中有这一行:

"require": {
    ...
    "friendsofsymfony/user-bundle": "~2.0@dev",
    ...
},
Run Code Online (Sandbox Code Playgroud)

道具~~2.0@dev确切含义是什么?那是一个占位符,并且将永远取像颠覆1.2.0,2.2.0,3.2.0等?没有意义(并且将由*通配符完成).

composer.json文档不告诉波浪任何事情.

我问,因为我刚刚阅读了Symfony博客中安全问题,他们建议升级到1.3.3版.但弄清楚FOSUserBundle的版本并不那么容易(我找不到包含该版本的文件).

Alt*_*PHP 135

Tilde意味着下一个重要的发布.在你的情况下,它相当于>= 2.0, < 3.0.

完整的解释在Tilde Version Range docs页面:

~操作者通过实例最好的解释:~1.2相当于>=1.2 <2.0.0,而~1.2.3相当于>=1.2.3 <1.3.0.

查看它的另一种方法是using ~指定最小版本,但允许指定的最后一位数字上升.

Seldeak的以下评论是对Composer文档的简单总结解释.

  • 我想说的一个简单的经验法则是〜允许最后一个数字上升.例如`~2.2`表示2.2和任何2.x,其中x是2或更高.`~2.1.3`也是任何2.1.x,其中x是3或更高. (69认同)
  • ~2.0和2.*是相同的BUT~2.3和2.*是不同的因为~2.3不允许版本低于2.3而2.*允许2.0,2.1,2.2等 (22认同)
  • 〜2.0与2. *有何不同?仅当最后一位不是0时才有用吗? (2认同)