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

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

"require": { ... "friendsofsymfony/user-bundle": "~2.0@dev", ... }, 

~2.0@dev中的波浪符究竟是什么意思? 这是一个占位符,应该总是获取像1.2.0颠覆? 没有意义(并且将由*通配符完成)。

composer.json文档不会告诉任何有关代字号的信息。

我在问,因为我刚刚在Symfony博客上阅读了一个安全问题 ,他们build议升级到1.3.3版本。 但是搞清楚FOSUserBundle的版本并不那么容易(我找不到包含版本的文件)。

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

完整的解释是在https://getcomposer.org/doc/articles/versions.md#tilde-version-range-

另一种看待它的方法是使用~指定最小版本,但允许指定的最后一个数字上升。

塞尔德克的下面的评论是一个简单的总结了composer php文件的解释。

Tilde运算符对于使用semantic versioningscheme对其库进行semantic versioning的项目非常有用。

Semantic versioning更多的是评估next significant release的指导原则。

对于Composer来说,这个操作符意味着在安装更新的时候允许次要的版本(可以包括补丁),而不允许一个主版本(这个版本可能不会向后兼容)。

例如: ~4.1将允许项目版本>=4.1<5.0

Credits: http : //dwellupper.io/post/37/using-tilde-range-operator-to-resolve-dependency-version-in-composer-php