A Practical Guide to Laravel × DDD × Clean Architecture
No Laravel experience required. A 20-chapter guide for SPA developers (Vue/React) that explains Laravel as an API backend together with domain-driven design (DDD) and clean architecture, step by step. It covers the theory of value objects, entities, aggregates, and repositories, through to implementation patterns, transactions, testing, and authentication in a Laravel project.
Basics of Laravel API Development — Controller, FormRequest, Eloquent, DI
An introduction to API backend development for those new to Laravel. It covers routing, controllers, FormRequest, API Resource, Eloquent ORM, the DI container, Sanctum authentication, and the PHP 8.x syntax used in this book (readonly / enum / constructor promotion).
Eloquentモデルの責務 — 書いていい仕事と書くべきでない仕事
Eloquentモデルが本来担うべき責務(リレーション・アクセサ/ミューテタ・キャスト・ローカルスコープ)と、モデルに書くべきでない責務を、Fat Modelとの対比で整理します。
Entities — Domain Objects with an Identifier and a Lifecycle
Explains the DDD entity (Entity) with implementation examples of Order / OrderLine. It covers identity judgment by identifier, the difference from value objects, entity ≠ table, the two factory methods create() / reconstruct(), and state transitions and the encapsulation of business rules using enums.
Getting Started — A Practical Guide to Laravel × DDD × Clean Architecture
An introduction to DDD and clean architecture with Laravel, aimed at developers experienced with SPA development (Vue/React). It covers what you will learn, the e-commerce order system used as the running example, the SPA + API architecture assumed throughout, an overview of DDD and clean architecture, and the books to read alongside.
Laravel API 開発ガイド
Laravel を API バックエンドとして使うための全 22 章のガイド。ルーティング・Eloquent・バリデーションの基礎から、認証認可 (Sanctum / Policy)・キャッシュ・キュー・タスクスケジューラ・ファイルストレージ・本番運用までを、EC サイトの注文システムを題材に順を追って解説します。Blade などのフロントエンド機能は扱いません。
PHPクラス設計ガイド
PHP でクラス設計そのものを入門から実践まで学ぶ全14章のガイド。フレームワーク非依存の設計原則 (カプセル化・単一責任・継承とコンポジション・インターフェース・SOLID) から、Laravel でのモデル/サービスクラス設計まで一気通貫で扱います。
PHPのクラス基本文法
PHPにおけるクラスの基本文法。プロパティ・メソッド・コンストラクタ・可視性修飾子・readonly・コンストラクタプロモーション・enumを解説します。
Value Objects — Immutable Domain Objects That Encapsulate Business Rules
Explains the DDD value object (Value Object) with implementation examples such as Money / EmailAddress / ShippingAddress / OrderId. It summarizes their advantages over primitive types, the importance of immutability, and design guidelines for named constructors, validation, and equals().
イベントと通知 — 注文確定から先を疎結合にする
Laravel API 開発ガイドの第15章。サービスクラスに処理が足され続ける問題をイベントとリスナーで解きます。リスナーの自動検出、Notification クラスと Mailable、同期送信のコストの測り方、Notification::fake によるテストと Mail::fake との使い分けも扱います。
インターフェースと抽象への依存
インターフェースによる契約に基づく設計と、依存性逆転の原則という考え方を解説します。
エラー設計 — 例外を HTTP レスポンスに翻訳する
Laravel API 開発ガイドの第9章。エラーレスポンスの形を決め、カスタム例外クラスを作り、bootstrap/app.php の withExceptions を唯一の変換地点にします。何をログに送るか、何をクライアントに見せないかも扱います。
カプセル化と情報隠蔽
public propertyの危険性、tell-don't-ask原則、ゲッター・セッターの要否判断を解説します。
キャッシュ — 速くするために、正しさをどこまで諦めるか
Laravel API 開発ガイドの第18章。何をキャッシュしてよいかの判断、Cache::remember とドライバ選択、キー設計、TTL と明示的な失効、スタンピード対策 (Cache::flexible / Cache::lock)、Laravel 13 の Cache::touch、キャッシュを使うテストの書き方を扱います。
キューの基礎 — 重い処理をリクエストの外に出す
Laravel API 開発ガイドの第16章。リスナーに ShouldQueue を付けて非同期にし、queue:work でワーカーを動かします。Job クラスと dispatch、ドライバの選び方、SerializesModels、トランザクション内で dispatch しないための afterCommit、Queue::route、Queue::fake によるテストも扱います。
キューを本番で運用する — 冪等性・リトライ・failed_jobs
Laravel API 開発ガイドの第17章。ジョブが 2 回実行される前提での冪等な書き方、Tries と Backoff によるリトライ設計、failed_jobs と queue:retry、ShouldBeUnique と WithoutOverlapping、Supervisor によるワーカーの常駐と queue:restart を扱います。
サービスクラスへの責務分割 — Controller肥大化を防ぐ切り出し
Controllerに残った複数の関心事を調整する処理を、サービスクラスへ切り出す判断基準を解説します。単なるファイル分割で終わらせないための凝集度の保ち方も扱います。
タスクスケジューラ — 定期処理を cron 1 行に集約する
Laravel API 開発ガイドの第20章。routes/console.php でのスケジュール定義、cron エントリを 1 行に保つ意味、期限切れトークンと負の在庫と孤児ファイルの掃除、未決済注文の自動キャンセルと「未決済」の判定、withoutOverlapping と onOneServer、travelTo による時刻固定テストと配線テストを扱います。
テスト — Pest で API の契約を固定する
Laravel API 開発ガイドの第10章。Pest の書き方を導入し、ここまでに作った API に Feature テストを書きます。正常系だけでなく失敗パスを固定する理由、テストデータの用意、そして以降の章で守るテストの型を決めます。
トランザクションと同時実行制御 — 在庫の二重引き当てを塞ぐ
Laravel API 開発ガイドの第14章。DB::transaction による原子性、lockForUpdate による行ロック、条件付き UPDATE、デッドロックの再試行を扱います。Idempotency-Key と一意制約による二重注文の防止も扱います。
はじめに — なぜクラス設計を学ぶのか
PHPクラス設計ガイド連載の第1章。god classや変更に弱いコードの実例を通じて、クラス設計を学ぶ意味と連載全体の見通しを示します。
はじめに — 何を作り、何を作らないか
Laravel API 開発ガイドの第1章。チュートリアルどおりに書いた注文 API が本番で壊れる 3 つの場面を示し、この連載が扱う範囲と題材、既存ガイドとの読み分けを整理します。
ビジネスロジックの置き場所 — サービスクラスとサービスコンテナ
Laravel API 開発ガイドの第6章。前章で作った注文作成 API のコントローラを診断し、サービスクラスへ切り出します。Eloquent モデルに書くものと書かないものの判断基準、サービスコンテナによる依存の自動解決、インターフェースの結び付けまでを扱います。
ファイルストレージ — 商品画像と領収書 PDF
Laravel API 開発ガイドの第19章。ディスクという抽象と local / public の使い分け、アップロードの検証と保存、Sanctum の ability による保護、非公開ファイルの配信と署名付き URL、ジョブでの PDF 生成、ファイルとレコードの整合、Storage::fake によるテストを扱います。
まとめ — 実務でクラス設計を判断するために
全13章の判断基準を、実務のコードに向き合うときに使えるチェックリストの形に整理します。次に読むガイドも紹介します。
まとめ — 本番リリース前チェックリスト
Laravel API 開発ガイドの最終章。21 章分で決めたことを、本番へ出す前に確認する 1 枚のリストにまとめます。設定・データベース・入出力・認可・非同期処理・ログ・デプロイの分野別チェックリストと、どの章で何を決めたかの索引を置きます。
ミドルウェアとレート制限 — 横断的な守りを 1 か所に置く
Laravel API 開発ガイドの第13章。決済 Webhook の署名検証を題材にミドルウェアを自作し、bootstrap/app.php へ登録します。RateLimiter による流量制御、多段の制限、429 レスポンス、CORS も扱います。
リクエストライフサイクルと Laravel 13 の骨格
Laravel API 開発ガイドの第2章。1 つのリクエストが public/index.php からコントローラまで届く経路を追い、bootstrap/app.php・サービスコンテナ・サービスプロバイダ・設定ファイルがその経路のどこに刺さるかを整理します。
ルーティング設計と最初のエンドポイント
Laravel API 開発ガイドの第4章。install:api で API 用の骨格を作り、apiResource でルートをまとめ、ルートモデルバインディングで ID をモデルに変換します。URL 設計・バージョニング・ステータスコードの決め方も扱います。
ログ・監視とデプロイ — 何が起きたかを後から追えるようにする
Laravel API 開発ガイドの第21章。config/logging.php のチャンネルと stack、Context によるリクエスト ID の伝播、想定内と想定外のログの振り分け、404 と 429 の記録、Monolog プロセッサによる機密情報のマスク、構造化ログ、デプロイ手順の順序、スケジューラの死活監視を扱います。
一覧 API — ページネーション・フィルタ・N+1
Laravel API 開発ガイドの第8章。商品一覧 API を題材に、ページネーション 3 種の使い分け、フィルタとソートを安全に受け取る方法、N+1 問題の観測と eager loading による解決、そして機械的に検出する仕組みを扱います。
例外設計とバリデーション — Form Requestとカスタム例外
Form Requestによるリクエストの形式チェックと、カスタム例外クラスによるfail-fastな設計を解説します。
依存性注入とLaravelのコンテナ — 自動解決とインターフェースの結び付け
Laravelのサービスコンテナによる自動解決の仕組みと、インターフェースと実装クラスをbindで結び付ける基本的な使い方を解説します。
入力の検証 — Form Request で境界を固める
Laravel API 開発ガイドの第5章。注文作成 API を題材に、コントローラ直書きのバリデーションを Form Request へ移します。配列とネストしたデータの検証、検証前後の処理、日本語メッセージ、そして形式チェックとビジネスルールの境界線を扱います。
凝集度・結合度とSOLID原則の総整理
第1部の集大成として、開放閉鎖・リスコフ置換・インターフェース分離の原則を補い、凝集度と結合度という物差しでこれまでの原則を振り返ります。
出力の設計 — API Resource でレスポンスの形を決める
Laravel API 開発ガイドの第7章。モデルをそのまま返す危うさを示し、API Resource でレスポンスの形をコードとして固定します。リレーションの含め方、条件付きの項目、日付・金額・enum の表現、data ラッピングを扱います。
単一責任の原則
単一責任の原則とクラスを小さく保つ考え方。god classの兆候と、責務分割の実例を解説します。
実践 — クラス設計のリファクタリング
第8章のFat Controller/Fat Modelを、第9〜12章で見た判断基準を使って通しでリファクタリングします。第1部の原則を総動員する実践編です。
第2部の導入 — Fat Controller/Fat Modelとは何か
第2部の導入。Fat Controller/Fat Modelとは何かを整理し、本パートで扱う範囲(クラス設計止まり)を明示します。
継承とコンポジション
is-a・has-aの関係と、なぜ継承よりコンポジションが優先されるかを解説します。
認可 — Gate と Policy で「誰が何をできるか」を決める
Laravel API 開発ガイドの第12章。注文の一覧と詳細を作りながら、Policy によるモデル単位の認可を実装します。一覧 API では Policy が効かない理由、403 と 404 の使い分け、認可漏れをテストで検出する方法を扱います。
認証 — Sanctum によるトークン認証
Laravel API 開発ガイドの第11章。Sanctum で会員登録・ログイン・ログアウトを作り、ルートをトークン認証で保護します。ゲスト注文を会員注文へ移す手順、トークンの権限と有効期限、テストでの認証済み状態の作り方まで扱います。
題材のモデリングとデータ整備 — テーブル・モデル・シーダー
Laravel API 開発ガイドの第3章。商品・在庫・注文・注文明細のテーブルをマイグレーションで作り、Eloquent モデルと enum を対応させ、ファクトリとシーダーで開発用データを用意します。金額の型と mass assignment の扱いもここで決めます。