2017-07-09 17 views
1

モジュラー構造にコンポーザーを使用する最良の方法を探しています。複数の作曲家が(独立した)モジュラープロジェクトでインストールする

のは、私はこのフレームワークの木を持っているとしましょう:

/cms
/site/addons

は、開発者がcomposer.jsonがインストール彼らと彼らのプロジェクトを追加するためのは、アドオンが利用可能であることを言ってみましょう。 Like /site/addons/MyNewFeature/composer.json

したがって、次の質問は/vendorです。それぞれのアドオンに/vendorというディレクトリがありますか?メインフレームワーク内でそれらをすべて自動で読み込むべきでしょうか?そのパフォーマンスはあまりにも高く、複数のコンポーザーのインストールではおそらく同じ依存関係がたくさんインストールされるでしょう。コンパイラは現在のインストールに含まれていないすべてのプロジェクトを自動的に削除し、独自のロックファイルを使用するため、同じ/vendorディレクトリ内にインストールすることはできません。/site/addons/vendor

モジュラープロジェクトベースシステム用に複数のコンポーザーインストールを行うにはどうすればいいですか?各プロジェクトは独自のコンポーザーベンダーを必要としますが、パフォーマンスのためには1つのベンダーのみを組み込むのが最善です。私はまだこれに対する解決策を見つけ、皆さんのアイデアがあるか、正しい方向へ私を導いてくれるのか疑問に思っています。

これは

他のソリューションは、ちょうどすべてのアドオンのために作曲を使用している...あなたは、メインcomposer.jsonは、それが自動的にアドオンのそれぞれに行き、同様にそれらをインストールしますインストール必要はほとんどのようです(/更新をインストール)私には制御が少なく、/vendorディレクトリにあるすべてのものに問題があります。

答えて

0

いくつかの調査とテストの後、私はこのコンセプトに遭遇しました。

フレームワークでは、アドオンを手動でインストール/アップデートすることができます。composer.jsonファイル内では、repositoriesワイルドカードパスを使用します。

"repositories": [ 
     { 
      "type": "path", 
      "url": "../site/addons/*", 
      "options": { 
       "symlink": false 
      } 
     } 
    ] 

今ではcomposer.jsonファイルのすべてのアドオンディレクトリをチェックして、私はもともと欲しかったようにユニバーサル/vendorディレクトリにその依存関係のすべてをインストールします。

これを行うことで後で発生する可能性のある問題はわかりませんが、これまでのところ私が望むコントロールが得られます。

メインフレームのrequireに、有効になっているすべてのアドオンがあることを確認するだけで済みます。

https://getcomposer.org/doc/05-repositories.md#path

関連する問題