これまで、すべてのPHPUnitファイルについて言及しているオートローダ ファイルのバージョンをコミットするのを避けました。私はオートローダファイルの 2の間のバージョンを切り替えること保つようしかし、これは 、開発にかなりの痛みを証明しています。
はそれだけで、それらをコミットしても大丈夫ですか?
これを正しく理解していれば、パーツ(vendor/composer
)または完全なベンダーフォルダをリポジトリにコミットしたいのですか?
は、Composerを使用して依存関係の更新を実行するとき(自動ロードの再生成を含む)ベンダーのフォルダに上書きされるため、また引き抜くときにマージの競合が発生する可能性があるため、開発チームの全員にとって複雑になります。
私の提案は次のとおりです。これをしません!ベンダフォルダなしでリポジトリを保存してください!
composer.lock
をコミットし、開発者がベンダーのフォルダ と、彼はどうしたらまず最初にすることなく、リポジトリ、その船をフェッチするときcomposer install
を使用するには、composer install
を実行することで、依存関係を取得することです。
チームのすべての開発者が同じバージョンの依存関係をフェッチするように、composer.lock
ファイルをコミットする必要があります。情報は、ロックファイルに既にあるので、それは、依存関係の解決およびバージョンの検索をスキップすることができますので、 Composerはまた、より高速なビットを実行します。
更新
私はあなたの質問に対処するためにrequire
とrequire-dev
にfocuesたが、私は2つのセクションでは、自動ロードautoload
にもありますがautoload-dev
を持っていることを言及するのを忘れてしまいました。
"autoload" : {
"psr-4": {
"Application\\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"Application\\Tests\\": "tests/"
}
},
参照:あなたは本番に展開するプロセスにあるときcomposer install --no-dev
はどんなrequire-dev
パッケージを省略する実行https://getcomposer.org/doc/04-schema.md#autoload-dev
私は自分のプロジェクトをComposerなしのコンテキストで使用できるようにしたいので、オートローダーをコミットしたいと思います。唯一の依存関係はrequire-devにあるPHPUnitです。 – joachim
さて、新しいリリースにタグを付け、 'composer install --no-dev'を使ってプロダクションの依存関係を取り出し、それをパッケージ化し(ベンダの依存関係を含む)、リリースしてからあなたのコンテキストに展開することができます。 |あなたの質問への短い答えは、 "ただコミットするのは大丈夫ですか?"それは開発を複雑にしますが、うまくいくでしょう。 –
私がそれらをコミットしたい理由は、実際には、少なくとも私にとっては、開発をより簡単にすることです!現時点では、私は生産用オートローダを持つgitブランチと開発用オートローダを持つブランチに切り替える必要があります。 – joachim