1. ホーム
  2. symfony

[解決済み] composer.jsonのチルダ(~)は何を意味しているのですか?

2022-07-30 14:13:58

質問

composer.jsonにこのような行があります。

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

チルダは何を意味するのか ~~2.0@dev は正確に何を意味するのでしょうか?これはプレースホルダーで、常に次のようなサブバージョンを取得します。 1.2.0 , 2.2.0 , 3.2.0 などと書くのでしょうか?意味がない(そして、それを行うのは * というワイルドカードを使うことになります)。

composer.jsonのドキュメント にはチルダについて何も書かれていません。

について読んだばかりなので、質問しています。 セキュリティの問題を読んだからです。 を読み、バージョン1.3.3へのアップグレードを勧められました。しかし、FOSUserBundleのバージョンを把握するのはそれほど簡単ではありません(バージョンを含むファイルを見つけられませんでした)。

どうすれば解決するのでしょうか?

チルダとは 次の重要なリリース . あなたの場合、これは次のように等価です。 >= 2.0, < 3.0 .

詳しい説明は Tilde Version Range ドキュメント・ページ :

~ 演算子は、例で説明するのが一番わかりやすいでしょう。 ~1.2 とは >=1.2 <2.0.0 と同じですが ~1.2.3>=1.2.3 <1.3.0 .

別の見方をすれば ~ は最小の バージョンを指定しますが、指定された最後の桁が上がることを許可しています。

Seldeakの以下のコメントは、Composerのドキュメントをシンプルにまとめた説明です。