メインコンテンツまでスキップ

Laravel × DDD × クリーンアーキテクチャ実践ガイド

このガイドについて​

Vue/React など SPA 開発経験者 を対象に、Laravel を使ったドメイン駆動設計 (DDD) とクリーンアーキテクチャをステップバイステップで学ぶ全 26 章のガイドです。Laravel の基礎から始め、どこに境界を引くかを決める戦略的設計、境界の内側を作る戦術的設計、クリーンアーキテクチャの実装、運用品質、イベント駆動への発展、総合実践までを連続した流れで身につけます。

このガイドの特徴
  • 段階的: Laravel 基礎 → 戦略的設計 → 戦術的設計 → アーキテクチャ実装 → 運用テクニック → イベント駆動への発展 → 総合実践の順で学べる
  • Laravel 未経験でも OK: 第 2 章で Laravel API 開発の基礎を解説してから DDD に進む
  • 一貫した題材: EC サイトの注文システムを題材に、各概念が実装に落ちる過程を追える
  • モダン PHP 前提: PHP 8.2 以上 (readonly / enum / コンストラクタプロモーション) と Laravel 11 以上を対象
執筆時点のバージョンについて

本ガイドは Laravel 11 / PHP 8.2 を前提に執筆しています。現行の最新版は Laravel 13 (2026 年 3 月リリース、PHP 8.3 以上が必要) で、サービスプロバイダの登録先など構成が変わっている箇所があります。DDD・クリーンアーキテクチャの設計上の考え方は版に依存しませんが、Laravel 固有の設定・記法は公式ドキュメントで最新版を確認してください。Laravel 13 前提で API 開発の基礎から追いたい場合は Laravel API 開発ガイド を参照してください。

ガイドの構造​

学習の流れ​

ガイドは導入 + 6 部構成で、Laravel の基礎から DDD の実践まで段階的に学べます。

導入​

章扱うこと
01 はじめに本ガイドの狙いと、想定するアーキテクチャの全体像
02 Laravel API 開発の基礎Controller・FormRequest・Eloquent・DI

第 1 部 DDD の戦略的設計​

章扱うこと
03 なぜ DDD かFat Controller / Fat Model の限界
04 DDD の全体像戦略的設計と戦術的設計という 2 つの層
05 戦略的設計サブドメイン・ユビキタス言語・コンテキストマップ
06 イベントストーミング業務からモデルを見つけるワークショップ

第 2 部 DDD の戦術的設計​

章扱うこと
07 DDD の基本概念ドメインオブジェクト・集約・リポジトリ
08 値オブジェクト不変でビジネスルールを内包するドメインオブジェクト
09 エンティティ識別子とライフサイクルを持つドメインオブジェクト
10 集約整合性の境界と集約ルート
11 ドメインサービスエンティティに属さないビジネスロジック
12 ドメインイベント集約間の疎結合な連携
13 OOP と DDD の戦術パターン原則がどのパターンに現れるか

第 3 部 クリーンアーキテクチャと Laravel​

章扱うこと
14 Laravel での DDD アーキテクチャ4 層構成と依存性逆転
15 ユースケース層の設計Command / Query 分離と DTO
16 プレゼンテーション層の設計FormRequest・薄い Controller・API Resource
17 リポジトリパターンドメインと永続化の境界
18 ドメインモデルとテーブル設計マッピングとインデックス

第 4 部 実践テクニック​

章扱うこと
19 トランザクション管理整合性の境界をどこに置くか
20 エラーハンドリングドメイン例外と HTTP ステータスの対応
21 テスト戦略テストピラミッドと層別テスト
22 認証・認可設計JWT と層別の責務分担

第 5 部 イベント駆動への発展​

章扱うこと
23 CQRS と Event Sourcing読み書きを分ける設計と、履歴を正本にする設計
24 メッセージングと pub/subプロセスをまたいでイベントを届ける

第 6 部 総合実践​

章扱うこと
25 実践:注文システムの実装全層を貫く実装例
26 まとめと次のステップDDD の段階的導入

対象読者​

  • Vue/React など SPA 開発経験があり、バックエンド API 開発を学びたいフロントエンドエンジニア
  • Laravel 未経験でも、PHP の基本文法がわかる方
  • 「Fat Controller」「Fat Model」の問題を感じている方
  • ビジネスロジックをどこに書くべきか迷っている方
  • より保守性の高いコードを書きたい方

前提知識​

必須度知識
必須PHP の基本文法 (クラス、インターフェース)
必須データベースの基本 (テーブル、リレーション)
必須API の基本概念 (HTTP メソッド、JSON)
推奨オブジェクト指向の基本概念 (カプセル化、継承、ポリモーフィズム)
不要Laravel の経験 (本ガイドで基礎から解説)

推奨される読み方​

  • 初学者: 上から順番に読み、各章のコードを実際に動かしながら進める
  • Laravel 経験あり: 第 2 章を流し読みし、第 3 章「なぜ DDD か」から本格的に始める
  • 辞書的に使いたい: 上の章立てから該当する章を直接開く

それでは はじめに から始めましょう。