私のcomposer.jsonファイルでチルダ(〜)はどういう意味ですか?


115

composer.jsonファイルに次の行があります。

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

のチルダ~~2.0@dev正確にはどういう意味ですか?ことは、プレースホルダであり、常にのようなサブバージョンフェッチするもの1.2.02.2.03.2.0などを?意味がありません(*ワイルドカードによって行われます)。

composer.jsonのドキュメントは、チルダについては何も教えてくれありません。

私はSymfonyブログでセキュリティ問題について読んだだけで、バージョン1.3.3にアップグレードすることを勧めているので、私は尋ねています。しかし、FOSUserBundleのバージョンを理解するのは簡単ではありません(バージョンが含まれているファイルが見つかりませんでした)。

回答:


142

Tildeは次の重要なリリースを意味します。あなたの場合、それはと同等>= 2.0, < 3.0です。

詳細な説明は、Tildeバージョン範囲のドキュメントページにあります

~最良の例により説明されているオペレータは:~1.2と同等である>=1.2 <2.0.0が、~1.2.3と等価です>=1.2.3 <1.3.0

別の見方をすると、を使用~すると最小バージョンが指定されますが、指定された最後の桁が上がることができます。

Seldeakの下のコメントは、Composerドキュメントの簡単な要約説明です。


73
簡単に言えば、〜は最後の桁を上に移動できるようにするというものです。たとえば~2.2、2.2と2.xを意味します。xは2以上です。~2.1.3また、任意の2.1.x(xは3以上)も含まれます。
セルデク2013

2
とはどう~2.0違うの2.*ですか?最後の桁が0でない場合にのみ役立ちますか?
ジェシー

24
〜2.0と2. *は同じですが、
〜2.3

2

Tilde演算子は、semantic versioningスキームを使用してライブラリをバージョン管理するプロジェクトに役立ちます。

Semantic versioningは、に評価されるガイドラインの詳細ですnext significant release

Composerの場合、この演算子は、のインストールおよび更新中に、メジャーバージョン(下位互換性がない可能性がある)を許可せずに、マイナーリリース(パッチを含むことができる)を許可することを意味します。

たとえば:~4.1プロジェクトのバージョンを許可します>=4.1が、<5.0

クレジット:http : //dwellupper.io/post/37/using-tilde-range-operator-to-resolve-dependency-version-in-composer-php


0

のチルダ~~2.0@dev、即時バージョンに上がることを意味します。

例えば ​​:

私たちが持って~2.0@devいる場合、すぐ次のバージョンに行きます => ~2.x@dev

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.