Composer によってダウンロードされたコンテンツは git に送信する必要がありますか?
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 ディレクトリを無視し、次のディレクトリのみを送信します。ベンダーの実践規範。
ブランチ開発中に、リポジトリを介してベンダーを同期せず、composer.lock のみを同期しても、時間の無駄にはならないことにも注意してください。
2 つのブランチ間を切り替える場合、それは 2 つの特定のバージョン間を行き来することに他なりません。 Composer 自体は、ダウンロードされたすべてのライブラリをキャッシュします。各ブランチをプルした後の Composer のインストールは、ダウンロード時間を繰り返し消費することなく、確実にすべてのキャッシュにヒットします。
以上がComposer によってダウンロードされたコンテンツは git に送信する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









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

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

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

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

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

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

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

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