Eloquentモデルの責務 — 書いていい仕事と書くべきでない仕事
Eloquentモデルが本来担うべき責務(リレーション・アクセサ/ミューテタ・キャスト・ローカルスコープ)と、モデルに書くべきでない責務を、Fat Modelとの対比で整理します。
Eloquentモデルが本来担うべき責務(リレーション・アクセサ/ミューテタ・キャスト・ローカルスコープ)と、モデルに書くべきでない責務を、Fat Modelとの対比で整理します。
Laravel 未経験でも大丈夫。Vue/React など SPA 開発者を対象に、API バックエンドとしての Laravel とドメイン駆動設計 (DDD)・クリーンアーキテクチャをステップバイステップで解説する全 20 章のガイド。値オブジェクト・エンティティ・集約・リポジトリの理論から、Laravel プロジェクトでの実装パターン・トランザクション・テスト・認証までを網羅します。
Laravel 未経験者向けに API バックエンド開発の基礎を解説。ルーティング・Controller・FormRequest・API Resource・Eloquent ORM・DI コンテナ・Sanctum 認証、本書で使う PHP 8.x 構文 (readonly / enum / コンストラクタプロモーション) までをまとめます。
PHP でクラス設計そのものを入門から実践まで学ぶ全14章のガイド。フレームワーク非依存の設計原則 (カプセル化・単一責任・継承とコンポジション・インターフェース・SOLID) から、Laravel でのモデル/サービスクラス設計まで一気通貫で扱います。
PHPにおけるクラスの基本文法。プロパティ・メソッド・コンストラクタ・可視性修飾子・readonly・コンストラクタプロモーション・enumを解説します。
インターフェースによる契約に基づく設計と、依存性逆転の原則という考え方を解説します。
DDD のエンティティ (Entity) を Order / OrderLine の実装例で解説。識別子による同一性判断、値オブジェクトとの違い、エンティティ ≠ テーブル、create() / reconstruct() の 2 つのファクトリメソッド、enum を使った状態遷移とビジネスルールのカプセル化をまとめます。
public propertyの危険性、tell-don't-ask原則、ゲッター・セッターの要否判断を解説します。
Controllerに残った複数の関心事を調整する処理を、サービスクラスへ切り出す判断基準を解説します。単なるファイル分割で終わらせないための凝集度の保ち方も扱います。
Vue/React など SPA 開発経験者に向けた Laravel での DDD・クリーンアーキテクチャ入門。本ガイドの対象読者・前提知識・全 20 章の構成と、DDD / クリーンアーキテクチャの全体像を解説します。
PHPクラス設計入門連載の第1章。god classや変更に弱いコードの実例を通じて、クラス設計を学ぶ意味と連載全体の見通しを示します。
全13章の判断基準を、実務のコードに向き合うときに使えるチェックリストの形に整理します。次に読むガイドも紹介します。
Form Requestによるリクエストの形式チェックと、カスタム例外クラスによるfail-fastな設計を解説します。
Laravelのサービスコンテナによる自動解決の仕組みと、インターフェースと実装クラスをbindで結び付ける基本的な使い方を解説します。
DDD の値オブジェクト (Value Object) を Money / EmailAddress / ShippingAddress / OrderId などの実装例で解説。プリミティブ型に対する優位性、不変性 (イミュータビリティ) の重要性、名前付きコンストラクタ・バリデーション・equals() の設計指針をまとめます。
第1部の集大成として、開放閉鎖・リスコフ置換・インターフェース分離の原則を補い、凝集度と結合度という物差しでこれまでの原則を振り返ります。
単一責任の原則とクラスを小さく保つ考え方。god classの兆候と、責務分割の実例を解説します。
第8章のFat Controller/Fat Modelを、第9〜12章で見た判断基準を使って通しでリファクタリングします。第1部の原則を総動員する実践編です。
第2部の導入。Fat Controller/Fat Modelとは何かを整理し、本パートで扱う範囲(クラス設計止まり)を明示します。
is-a・has-aの関係と、なぜ継承よりコンポジションが優先されるかを解説します。