2017-03-14 10 views
0

私はプロジェクトのディレクトリを持っています。これらはそれぞれgitリポジトリからのものです。作者のプロジェクトルート外の依存関係を指定する

これらのプロジェクトのいくつかは、REST APIです、と私はこのようなプロジェクトの依存関係として指定されたすべてのもの、欲しい:

htdocs 
|- restApi1 
|- restApi2 
    |- Vendor 
     |-Guzzle 
|- restApi3 

だから、プロジェクト2がrestApi1とrestApi3に依存しています。 restApi2をインストールしてビルドするときにrestApi1またはrestApi3が見つからない場合は、 'git checkout'を実行します。 composer installまたはupdateに既にチェックアウトされている場合は、git pullに変更してカスタムコマンドにリビルドする必要があります。 私はプロジェクトとしてこれらのセットアップを持っていると私は2つのプロジェクト間での変更に取り組んかもしれない、私はこのような中、依存関係として引っ張った場合ので:

htdocs 
|- restApi1 
|- restApi2 
    |- Vendor 
     |- Guzzle 
     |- restApi1 
     |- restApi3 
|- restApi3 

私は彼らのレポに私の変更をプルするために作業を行う必要があり、新しいURLを操作すると、ワークフローが中断されます。 私はlocalhost上でhttpを使ってプロジェクトをヒットしたので、どこからでもどのバージョンからでもチェックして、すべてのコードベースが一度現れるような大きなプロジェクトのようにすべてを扱うことができます。

私は作曲家でこれを行う方法があるのか​​、これが間違っているのか疑問に思っています。 私も上記の方法と相容れない良い方法があれば、私の流れを変えたいと思っています。 私はhtdocsでスクリプトを書くことを考えましたが、それはすべてライフルを通り抜けてしまいますが、他のプロジェクトをコンポーザーファイルの依存関係として指定することは、私たちの内部プロジェクトの使い方の詳細を明らかにします。

答えて

1

あなたはcomposer.jsonあなたにrestApi1とrestApi3を追加することができます。そして、

"require" : { 
    ... 
    "myproject/restApi1": "dev-master", 
    "myproject/restApi3": "dev-master" 
}, 
"repositories": { 
    "myproject/restApi1": { 
     "url": "https://github.com/myproject/restApi1.git", 
     "type":"git" 
    }, 
    "myproject/restApi3": { 
     "url": "https://github.com/myproject/restApi3.git", 
     "type":"git" 
    }, 
} 

composer updateヨーヨーが新しいアップデートをするたびに。

もう1つのオプションはgit submodulesです。

+0

私はvhostsでこのアプローチを使っていました。なぜなら、autoloaderではなくHTTPでそれらを打つからです。しかし、私は 'require-dev'でそれを行いました。つまり、私は自分の開発コピーと私がテスト用に使っているものとを完全に別々に持っていることを意味し、この方法で私は自分のアプリケーションで何が何を使うのかを決める定式化された方法を持っています。 –

関連する問題