私は、拡張機能をインストールできるプロジェクトに取り組んでいます。つまり、コア プログラムをインストールしてから、サードパーティの拡張機能をダウンロードして追加することができます。
同じ依存関係の同じバージョンを必要とする 2 つの別個の拡張機能がある場合 (たとえば、2 つの拡張機能が AWS SDK を必要とする場合)、composer が同じ依存関係の 2 つのコピーをダウンロードしないようにする方法はありますか? ?
私は、拡張機能をインストールできるプロジェクトに取り組んでいます。つまり、コア プログラムをインストールしてから、サードパーティの拡張機能をダウンロードして追加することができます。
同じ依存関係の同じバージョンを必要とする 2 つの別個の拡張機能がある場合 (たとえば、2 つの拡張機能が AWS SDK を必要とする場合)、composer が同じ依存関係の 2 つのコピーをダウンロードしないようにする方法はありますか? ?
拡張機能を composer パッケージとして作成できます。composer.json
次に、独自のパッケージへの参照をメイン ファイルに追加します。
例えば:
root/
my-extension-a/
composer.json ( require: dep-a, dep-b)
vendor/
dep-a/
dep-b/
my-extension-b/
vendor/
dep-a/
dep-c/
composer.json (require dep-a, dep-c)
main-project/
composer.json (require my-extension-a, my-extension-b)
vendor/
my-extension-a/
my-extension-b/
dep-a/
dep-b/
dep-c/
メイン プロジェクトのcomposer.json
ファイルは次のようになります。
"require": {
"parent5446/my-extension-a": "dev-master",
"parent5446/my-extension-b": "dev-master"
}
拡張機能を packagist で公開できます。または、Satis を使用してプライベート リポジトリを参照することもできます。この機能については、こちらで詳しく説明されています: Managing private packages with Satis and Composer