[PHP]Composerで依存パッケージの要求バージョンに矛盾が発生するとき

カテゴリ: composer

Composerで複数のパッケージを利用している場合、依存しているパッケージの要求バージョンが、パッケージ間で矛盾が発生する場合があります。
このような場合は、Composerでパッケージのバージョンを上書きする(エイリアスをつける)ことで解決できる場合があります。

各コンポーネントの要求バージョンが矛盾していて解決できない

例えば、現在作っているプロジェクトが、パッケージBの特別なバージョン(例えばver0.11)に依存しているとします。
しかし、作っているプロジェクトで、パッケージAを使っていて、このパッケージAのcomposer.json定義でver0.10をバージョンNo固定で要求している場合、要求バージョンの矛盾によりパッケージBを使用することができません。

エイリアス機能でバージョン間の矛盾を解決

このような問題が生じたときのために、Composerにはエイリアス機能というものが存在します。バージョン名のエイリアスを利用することで、実際はパッケージBのver0.11を取得しつつ、依存性チェック時にはver0.10であるという別名の指定ができます。

この時、作っているプロジェクトのcomposer.json定義は、以下のようバージョンの後に"as 別名"を指定すればよいです。

{
    "require": {
        "A": "0.2",
        "B": "0.11 as 0.10"
    }
}
こちらもおススメ

コメントを残す

メールアドレスが公開されることはありません。