2

私は、拡張機能をインストールできるプロジェクトに取り組んでいます。つまり、コア プログラムをインストールしてから、サードパーティの拡張機能をダウンロードして追加することができます。

同じ依存関係の同じバージョンを必要とする 2 つの別個の拡張機能がある場合 (たとえば、2 つの拡張機能が AWS SDK を必要とする場合)、composer が同じ依存関係の 2 つのコピーをダウンロードしないようにする方法はありますか? ?

4

1 に答える 1

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

于 2013-04-22T15:45:34.773 に答える