Skip to content

Composer Autoload ワークフロー図

📊 全体像

┌─────────────────────────────────────────────────────────────┐
│                    開発ワークフロー                          │
└─────────────────────────────────────────────────────────────┘

┌──────────────┐    ┌──────────────┐
│ 新規クラス   │───>│  動作確認    │
│ 作成(PSR-4)│    │              │
└──────────────┘    └──────────────┘
      │                    │
      v                    v
  ファイル作成          テスト実行
  (dump-autoload 不要)


┌─────────────────────────────────────────────────────────────┐
│                    デプロイワークフロー                       │
└─────────────────────────────────────────────────────────────┘

┌──────────────┐    ┌──────────────┐    ┌──────────────┐
│ Composer     │───>│ composer     │───>│  デプロイ    │
│ Validate     │    │ install      │    │              │
└──────────────┘    └──────────────┘    └──────────────┘
      │                    │                    │
      v                    v                    v
  JSON検証           (オートロード含む)    本番反映
  (strict)


┌─────────────────────────────────────────────────────────────┐
│                    CI/CD パイプライン                        │
└─────────────────────────────────────────────────────────────┘

┌──────────────┐    ┌──────────────┐    ┌──────────────┐
│ Checkout     │───>│ Setup PHP    │───>│ Composer     │
│ Code         │    │ 8.3          │    │ Validate     │
└──────────────┘    └──────────────┘    └──────────────┘

                                              v
┌──────────────┐    ┌──────────────┐    ┌──────────────┐
│ Quality      │<───│ Autoloader   │<───│ Install      │
│ Checks       │    │ 最適化       │    │ Dependencies │
└──────────────┘    └──────────────┘    └──────────────┘

      v
┌──────────────┐    ┌──────────────┐
│   PHPCS      │    │   PHPStan    │
│ (並列実行)    │    │ (並列実行)    │
└──────────────┘    └──────────────┘

🔄 PSR-4 運用(core_src)

┌─────────────────────────────────────────────────────────────┐
│                    PSR-4 のみ(core_src)                    │
└─────────────────────────────────────────────────────────────┘

開発時:
  新規クラス追加 → 動作確認
                  ^^^^^^^^
                  ✅ dump-autoload 不要

メリット:
  ✅ 開発効率: 自動読み込み
  ✅ 標準規約準拠

📌 現状の運用

┌─────────────────────────────────────────────────────────────┐
│ PSR-4 のみ(core_src)                                        │
├─────────────────────────────────────────────────────────────┤
│ ✅ 新規クラス追加時: dump-autoload 不要(PSR-4 で自動)        │
│ ✅ デプロイ前: composer install --no-dev --optimize-autoloader │
│ ✅ CI/CD: composer install でオートロード生成                  │
└─────────────────────────────────────────────────────────────┘

🛠️ ツール関係図

┌─────────────────────────────────────────────────────────────┐
│                  開発支援スクリプト                           │
└─────────────────────────────────────────────────────────────┘

composer-autoload-manager.sh
├── validate      → composer validate --strict
├── regenerate    → composer dump-autoload -o(PSR-4 では通常不要)
├── check         → オートローダー状態確認
└── all           → 全操作を順次実行

local-quality-check.sh
├── Composer validate     (追加済み)
├── Autoloader 最適化     (追加済み)
├── PHPCS
├── PHPStan
└── サマリー表示

common.sh
├── install_dependencies  (Composer validate 追加済み)
├── print_success
├── print_error
└── log_message

📊 ディレクトリ構造

プロジェクトルート/

├── composer.json                          # 開発依存関係
│   └── require-dev: PHPCS, PHPStan, etc

├── core_src/
│   ├── composer.json                      # 本番依存関係
│   │   ├── require: Twig
│   │   └── autoload:
│   │       └── psr-4: App\, MyCustom\
│   │
│   ├── vendor/
│   │   └── autoload.php
│   │
│   ├── Controller/
│   ├── Service/
│   ├── Model/
│   ├── View/
│   └── ...

├── scripts/
│   ├── composer-autoload-manager.sh       # 🆕 Autoload 管理
│   ├── local-quality-check.sh            # 改善済み
│   └── common.sh                         # 改善済み

└── docs/
    └── composer/
        └── composer-autoload-operations.md    # 完全ガイド

🔐 デプロイフロー

開発環境                         本番環境
┌─────────────┐                 ┌─────────────┐
│  開発作業   │                 │  本番サーバー│
│             │                 │             │
│ ・クラス追加│                 │ connector.php│
│ ・テスト    │    デプロイ      │ core_yyyymmdd/│
│ ・validate  │   =========>    │  ├─vendor/  │
│ ・品質チェック│                 │  ├─Controller/│
│             │                 │  ├─Service/ │
└─────────────┘                 │  └─...     │
                                └─────────────┘
                                ⚠️ 最適化済み
                                   オートローダー
                                   必須

📈 状態確認

オートローダーの状態は以下で確認できます。

bash
# スクリプトで状態確認
./scripts/composer-autoload-manager.sh check

🚨 トラブルシューティング フロー

"Class not found" エラー

          v
  composer install 実行?
  (core_src でオートロード再生成)

    ┌─────┴─────┐
    │           │
   YES          NO
    │           │
    v           v
composer.json  実行する
  正しい?   cd core_src &&
    │       composer install
   YES          │
    v           v
PHPStan     解決した?
で確認          │
           ┌────┴────┐
           YES        NO
            │         │
            v         v
          解決!   check コマンド
                   で状態確認

                       v
                   Issue 作成

凡例: ✅ 完了 / 🔧 進行中 / ⚠️ 注意事項 / 📊 メトリクス

最終更新: 2026-02-19