# Docker Compose と Composer の違い
| | Docker Compose | Composer |
|---|---|---|
| 役割 | 複数の**コンテナ**を管理するツール | PHPの**パッケージ(ライブラリ)**を管理するツール |
| 対象 | コンテナ・インフラ | PHPのコードレベルの依存関係 |
| 設定ファイル | `docker-compose.yml` | `composer.json` |
| コマンド例 | `docker compose up` | `composer install` |
| 実行場所 | ホスト側(EC2上) | コンテナ内(PHPが動く環境) |
| 用途 | 「アプリを動かす箱(コンテナ群)を準備する」 | 「アプリの中で使う部品(ライブラリ)を揃える」 |
## イメージ図
# `vendor/`ディレクトリとComposerの関係
## `vendor/`とは
**Composerでインストールした全PHPパッケージの格納場所**。Laravel固有のものではなく、Composerを使うPHPプロジェクト共通の仕組み。
```
vendor/
├── laravel/
│ └── framework/ ← Laravel本体もここにある(1パッケージとして)
├── symfony/ ← Laravelが内部で使うコンポーネント
├── monolog/ ← ログ出力ライブラリ
├── autoload.php ← 自動読み込みの起点ファイル
└── composer/
```
「**Laravel = vendor/の中の1パッケージ**」という位置付け。Laravelを使わないPHPプロジェクトでもComposerを使えば`vendor/`は作られる。
---
## 各ファイル・コマンドの役割
| 要素 | 役割 |
|---|---|
| `composer.json` | 「何を使うか」のリスト(依存パッケージの定義) |
| `composer.lock` | 「実際にインストールされたバージョン」の記録 |
| `composer install` | `composer.json`/`composer.lock`に基づき`vendor/`を生成 |
| `composer require` | 新しいパッケージを追加して`composer.json`に記録+インストール |
| `vendor/` | 上記に基づいてダウンロードされた全パッケージの実体 |
---
`vendor/`は基本的に**Gitにコミットしない**(`.gitignore`対象)。サイズが大きく、`composer.json`/`composer.lock`があれば誰でも再現できるため。
0 件のコメント:
コメントを投稿