ホームページ 開発ツール composer Composer によってダウンロードされたコンテンツは git に送信する必要がありますか?

Composer によってダウンロードされたコンテンツは git に送信する必要がありますか?

Jun 08, 2021 pm 03:46 PM
composer

composer の次のチュートリアル コラムでは、composer によってダウンロードされたコンテンツを git に送信する必要があるかどうかについて説明します。それが必要!

具体的な質問:

Composer を使用している学生の皆さんに聞きたいのですが、Composer を通じてダウンロードしたファイルの内容を Git に送信しますか?
公式 FAQ で「ベンダー ディレクトリの依存関係をコミットする必要がありますか?」という記事を見たことがありますが、Git に送信しない方がよいという意見もあったのですが、ブランチ切り替え時の再コンポーザのインス​​トールの問題はどのように対処すればよいでしょうか?ベンダーがリポジトリに送信された場合、パッケージ内の .git フォルダーはどのように処理されるべきですか?

##修正コンポーザーの更新はコンポーザーのインストールである必要があります

#解決策:


実際には、ブランチ開発であっても本番環境へのデプロイであっても、環境 では、composer.json でバージョン番号のワイルドカード ルールをどのように記述するかに関係なく、私たちが最も懸念しているのは常に最も基本的な内容です。開発時には、すべての依存ライブラリの具体的なバージョン番号は何か、ということです。使用済み?

このコンテンツは、composer.lock ファイルによってサポートされています。ロック ファイルを維持することにより、依存ライブラリに変更が加えられた後、コンポーザー自体がプロジェクト内のすべての依存ライブラリの特定のバージョンを記録します。このファイルに関するドキュメント (https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file) をお読みください。

必ず、composer.lock ファイルをリポジトリに送信し、ブランチの切り替えまたはデプロイ後に、composer install を使用して、ロック ファイルで指定されている特定の依存関係バージョンをインストールする必要があります。

この意味では、ベンダー ディレクトリをメイン リポジトリに送信するかどうかは正しいです。提出するかどうかはトレードオフの選択です:

提出した場合:

利点: 「プルして使用する」利便性。

欠点: 情報が重複します。当時開発した特定のバージョンのため、ロック ファイルが記録されています。つまり、vendorフォルダも同じものを表現しています。

欠点: 不整合が生じるリスク。 Composer はロック ファイルがベンダー ディレクトリと一致していることを保証しますが、ロック ファイルを git リポジトリに送信するのは結局のところ手動操作だからです。 2 つのうちのどちらかに遅れをとらないという保証はありません。

提出しない場合は有利不利が逆転します。二度と繰り返さないでください。

私の考えは次のとおりです。「使いやすさよりも正確さ」という考えに固執することをお勧めします。私の提案は、ベンダーに提出するのではなく、開発時に依存ライブラリのバージョンを維持するためにロック ファイルを使用することです。

送信する場合は、必ず次の 2 つのガイドラインに従ってください。

(1) 2 つのファイル Vendor と Composer.lock の送信が同期されていることを確認してください。一方が言及されている場合は、もう一方も言及する必要があります。

コミットが 1 つだけ送信された場合でも、開発は責任を負う必要があります。

その理由は次のとおりです。プルした後すぐに利用できるようにするためにベンダーに送信しますが、git には部分的なチェックアウト機能があります。Composer プロジェクトの場合、私は Composer プロジェクトの規則に従う権利を持っています。ベンダー ディレクトリをチェックアウトするのではなく、実際のコードをプルダウンしてから、composer のインストールを実行します。
(これが間違っているという人がいるなら、SF と Zhihu であなたの悪徳会社とテクニカル ディレクターを毎分暴露することを私は支持します)

(2) ベンダー フォルダーの提案については必ず Composer の指示に従ってください。 (https://getcomposer.org/doc/faqs/Should-i-commit-the-dependency-in-my-vendor-directory.md)、サブライブラリのすべての .git ディレクトリを無視し、次のディレクトリのみを送信します。ベンダーの実践規範。

信じてください、ベンダー内の実際のコードと、vendor/**/.git にある git ライブラリ自体の管理ファイルは、間違いなく氷山の水上部分と水中部分に関連しています。無視すれば人が死ぬ、と言っても過言ではありません。


ブランチ開発中に、リポジトリを介してベンダーを同期せず、composer.lock のみを同期しても、時間の無駄にはならないことにも注意してください。

2 つのブランチ間を切り替える場合、それは 2 つの特定のバージョン間を行き来することに他なりません。 Composer 自体は、ダウンロードされたすべてのライブラリをキャッシュします。各ブランチをプルした後の Composer のインストールは、ダウンロード時間を繰り返し消費することなく、確実にすべてのキャッシュにヒットします。

以上がComposer によってダウンロードされたコンテンツは git に送信する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

クラフトCMSのキャッシングの問題を解決する:Wiejeben/Craft-Laravel-Mixプラグインの使用 クラフトCMSのキャッシングの問題を解決する:Wiejeben/Craft-Laravel-Mixプラグインの使用 Apr 18, 2025 am 09:24 AM

CraftCMSを使用してWebサイトを開発する場合、特にCSSやJavaScriptファイルを頻繁に更新する場合、リソースファイルのキャッシュ問題が発生することがよくあります。古いバージョンのファイルがブラウザによってキャッシュされ、ユーザーが最新の変更を表示しないようにすることがあります。この問題は、ユーザーエクスペリエンスに影響を与えるだけでなく、開発とデバッグの難しさを高めます。最近、プロジェクトで同様のトラブルに遭遇し、いくつかの調査の後、プラグインWiejeben/Craft-Laravel-Mixが見つかりました。

コンポーザーを使用して依存関係注入を解きます:PSR-11コンテナインターフェイスの適用 コンポーザーを使用して依存関係注入を解きます:PSR-11コンテナインターフェイスの適用 Apr 18, 2025 am 07:39 AM

大規模なPHPプロジェクトを開発する際に、一般的ではあるが難しい問題に遭遇しました。依存関係を効果的に管理し、注入する方法です。最初は、グローバル変数と手動注入を使用しようとしましたが、これによりコードの複雑さが増加するだけでなく、簡単にエラーが発生しました。最後に、PSR-11コンテナインターフェイスを使用し、作曲家の力を使用して、この問題をうまく解決しました。

作曲家とlaravelcmsをすばやく構築する方法:mki-labs/エスプレッソの実践的な経験 作曲家とlaravelcmsをすばやく構築する方法:mki-labs/エスプレッソの実践的な経験 Apr 18, 2025 am 07:36 AM

新しいLaravelプロジェクトを開発する際に、トリッキーな問題に遭遇しました。完全に機能的で簡単なコンテンツ管理システム(CMS)を迅速に構築する方法です。私は複数のソリューションを試しましたが、複雑な構成と不便なメンテナンスのためにすべてをあきらめました。 LaravelcmsパッケージMKI-Labs/Espressoを発見するまで、インストールが簡単であるだけでなく、強力な機能と直感的な管理インターフェイスも提供し、問題を完全に解決しました。

作曲家を使用したJavaScriptエラー処理の問題を解決する方法 作曲家を使用したJavaScriptエラー処理の問題を解決する方法 Apr 18, 2025 am 08:30 AM

複雑なWebアプリケーションを開発する際には、JavaScriptエラーを効果的に処理してログインする方法を開発する際に、困難な問題を抱えています。私はいくつかの方法を試しましたが、このライブラリDvasilenko/Alterego_toolsを見つけるまで、それらのどれも私のニーズを満たすことができませんでした。このライブラリの設置を通じて、この問題を簡単に解決し、プロジェクトの保守性と安定性を大幅に改善しました。作曲家は次のアドレスを通して学ぶことができます:学習アドレス

Laravel Frameworkインストール方法 Laravel Frameworkインストール方法 Apr 18, 2025 pm 12:54 PM

記事の概要:この記事では、Laravelフレームワークを簡単にインストールする方法について読者をガイドするための詳細なステップバイステップの指示を提供します。 Laravelは、Webアプリケーションの開発プロセスを高速化する強力なPHPフレームワークです。このチュートリアルは、システム要件からデータベースの構成とルーティングの設定までのインストールプロセスをカバーしています。これらの手順に従うことにより、読者はLaravelプロジェクトのための強固な基盤を迅速かつ効率的に築くことができます。

Symfony/Consoleライブラリを使用して、効率的なコマンドラインインターフェイスを作成する実用的な経験 Symfony/Consoleライブラリを使用して、効率的なコマンドラインインターフェイスを作成する実用的な経験 Apr 18, 2025 am 07:30 AM

プロジェクト開発では、毎日のタスクを簡素化したり、プロセスを自動化するためにコマンドラインツールを作成する必要があることがよくあります。ただし、美しくテストしやすいコマンドラインインターフェイスを作成するのは簡単ではありません。最近、コマンドラインツールを必要とするプロジェクトを開発しながら、この問題に遭遇しました。いくつかの調査の後、私はSymfony/Consoleライブラリを見つけました。これにより、コマンドラインインターフェイスの作成プロセスが大幅に簡素化されます。

YIIフレームワークに基づくデータのバッチ処理の問題を解決するために作曲家を使用する方法 YIIフレームワークに基づくデータのバッチ処理の問題を解決するために作曲家を使用する方法 Apr 18, 2025 am 07:54 AM

YIIフレームワークプロジェクトを開発するとき、データベースから大量のデータを取得する必要がある状況に遭遇することがよくあります。適切な測定が行われない場合、すべてのデータを直接取得すると、メモリオーバーフローが発生し、プログラムのパフォーマンスに影響を与える可能性があります。最近、大規模なeコマースプラットフォームでプロジェクトを扱っていたとき、この問題に遭遇しました。いくつかの研究と試験の後、私はついにPavle/Yii-Batch-Resultの拡張ライブラリを通じて問題を解決しました。

Composerを使用してHTTP要求の問題を解決する方法:Yiche/HTTPライブラリの実用的なガイド Composerを使用してHTTP要求の問題を解決する方法:Yiche/HTTPライブラリの実用的なガイド Apr 18, 2025 am 08:06 AM

開発中、HTTP要求が必要になることがよくあります。これは、データを取得したり、データを送信したり、外部APIと対話するためです。ただし、複雑なネットワーク環境に直面してリクエスト要件を変更すると、HTTPリクエストを効率的に処理する方法が課題になります。プロジェクトで問題に遭遇しました。リクエストを異なるAPIに頻繁に送信し、リクエストを記録して、その後のデバッグと分析を促進する必要があります。いくつかの方法を試した後、Yiche/HTTPライブラリを発見しました。 HTTP要求の処理を簡素化するだけでなく、動的ロギング機能も提供し、開発効率を大幅に改善します。

See all articles