web-dev-qa-db-ja.com

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

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

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

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

composer.json documentation は、チルダについて何も伝えません。

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

105

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

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

~演算子の例は、~1.2>=1.2 <2.0.0と同等であるのに対し、~1.2.3>=1.2.3 <1.3.0と同等です。

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

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

133
AlterPHP

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

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

Composerの場合、この演算子は、installingおよび更新中

例:~4.1は、プロジェクトバージョン>=4.1を許可しますが、<5.0を許可します。

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

2
Pranav Rana

チルダ~ in ~2.0@dev即時バージョンに移行することを意味します:

例:

~2.0@dev次のバージョンをすぐにアップします=> ~2.x@dev

0
Selim Reza