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"
}
}
こちらもおススメ