PHP入門:Dockerでcomposerの実行環境を構築する -vol.3-

スポンサーリンク
PHP入門:Dockerでcomposerの実行環境を構築する -vol.3- 用語解説
PHP入門:Dockerでcomposerの実行環境を構築する -vol.3-
この記事は約5分で読めます。
よっしー
よっしー

こんにちは。よっしーです(^^)

今日は、PHPにおけるComposerの実行環境をDockerで構築する方法についてご紹介します。

スポンサーリンク

背景

PHPにおけるComposerの実行環境をDockerで構築する方法について調査する機会があったので、そのときの内容を備忘として残しました。

composer.jsonとcomposer.lockについて

composer.jsoncomposer.lockは、Composerツールで使用される2つの重要なファイルです。以下にそれぞれの役割を説明します。

  1. composer.json:
  • composer.jsonは、プロジェクトの依存関係や設定情報を定義するためのJSON形式のファイルです。
  • ファイルにはプロジェクトの名前、バージョン、必要なライブラリ、スクリプト、オートロード設定などが含まれます。
  • 主な目的は、プロジェクトのメタ情報と依存関係を宣言し、Composerがどのパッケージをインストールすべきかを指示することです。
  • 開発者が手動で編集することが期待されるファイルで、特に新しい依存関係を追加したり、バージョンを変更したりするときに変更されます。 例:
   {
       "name": "my/project",
       "require": {
           "vendor/package": "1.0.0"
       },
       "autoload": {
           "psr-4": {
               "My\\": "src/"
           }
       }
   }
  1. composer.lock:
  • composer.lockは、Composerがプロジェクトの依存関係を解決し、実際にインストールされたバージョンなどの詳細な情報を含むロックファイルです。
  • プロジェクトをクローンしたり、他のデベロッパーがプロジェクトをビルドするときに、composer.lockが参照されて依存関係の正確なバージョンが再現されます。
  • Composerは通常、composer.lockを読み取り、プロジェクトに必要な正確な依存関係をダウンロード・インストールします。これにより、複数の開発者や環境間でバージョンの一貫性を保つことができます。 例:
   {
       "_readme": [
           "This file locks the dependencies of your project to a known state",
           "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file"
       ],
       "content-hash": "abcdef123456...",
       "packages": {
           "vendor/package": {
               "version": "1.0.0",
               "source": {
                   "type": "git",
                   "url": "https://github.com/vendor/package.git",
                   "reference": "abcdef123456..."
               },
               "dist": {
                   "type": "zip",
                   "url": "https://example.com/vendor/package/archive/1.0.0.zip",
                   "reference": "abcdef123456..."
               },
               "autoload": {
                   "psr-4": {
                       "My\\": "src/"
                   }
               }
           }
       },
       "packages-dev": {
           // Dev dependencies go here
       },
       "aliases": {
           "1.0.0": "dev-main"
       },
       "minimum-stability": "dev",
       "stability-flags": {
           "vendor/package": 20
       },
       "prefer-stable": true,
       "platform": {
           "php": "7.4.3"
       },
       "platform-dev": {
           // Platform packages for dev dependencies go here
       }
   }

composer.lockがある場合、composer installcomposer.lockを見て依存関係を解決し、新たな依存関係は追加されません。一方で、composer updatecomposer.jsonを見て依存関係を更新し、その結果新しいcomposer.lockが生成されます。

おわりに

今日は、PHPにおけるComposerの実行環境をDockerで構築する方法についてご紹介しました。

よっしー
よっしー

何か質問や相談があれば、コメントをお願いします。また、エンジニア案件の相談にも随時対応していますので、お気軽にお問い合わせください。

それでは、また明日お会いしましょう(^^)

コメント

タイトルとURLをコピーしました