全体マップ

Laravel 13 ハンズオン連載 — 全体マップ(README)

Docker 環境前提・PHP 経験者向けの Laravel 13 学習連載です。1つのタスク管理アプリを育てながら、「作る力 → 育てる力 → 実務力」を段階的に身につけます。

この連載の前提

  • 対象:PHP の基本文法(変数・関数・クラス)が分かる人。Laravel は初めてでOK
  • 環境:Docker Desktop が動くこと。nginx + PHP-FPM + MySQL + phpMyAdmin 構成(Sailは使いません)
  • バージョン:Laravel 13(PHP 8.5)
  • 前提スキル:Git の基本操作(clone / commit / branch / push / PR)は既知として扱います。未経験の場合は先に習得してください
  • 題材:全編を通じて1つの「タスク管理アプリ」を継続して育てます

全体構成

部 テーマ 回数 到達点
基礎編 作る力 8回 ゼロからCRUD+認証つきWebアプリを作れる
発展編 育てる力 8回 テストを安全網に、壊さず機能追加・改善できる
実務力編 実務力 9回 他人のコード・現実の負荷・セキュリティに対応できる
番外編 実務頻出機能 5本 必要に応じて差し込む独立回
TypeScript編 型を扱う力 5回 フロントエンドに進む準備が整う(独立コース)
第4部 フロントエンド編 つなぐ力 8回 画面を React + Inertia で作り替えられる
付録 副読本 1本 全編通じて手元に置く

本編33回(基礎8+発展8+実務力9+フロント8)に番外編5本・TypeScript編5回・付録1本を加えた計44コンテンツ。基礎編→発展編は順番必須、実務力編は発展編修了後、番外編・付録は指定タイミングで差し込みます。TypeScript編は発展編第6回以降ならいつでも開始できる独立コースです。


基礎編(作る力)全8回

回 タイトル 主なトピック
1 Docker環境構築とHello Laravel Docker構成、Laravelインストール、DB接続、リクエストの流れ
2 ルーティングとController ルート定義、ルートパラメータ、Controller、名前付きルート、MVC
3 Bladeで画面を作る Bladeディレクティブ、View、レイアウトコンポーネント、CSS
4 マイグレーションとEloquent入門 マイグレーション、モデル、tinkerでCRUD、Eloquent
5 一覧表示と作成フォーム 実データ表示、フォーム、CSRF、FormRequest、バリデーション、フラッシュ
6 編集・削除とリソースコントローラ ルートモデルバインディング、Update/Delete、Route::resource
7 認証とユーザーごとのタスク 自前認証、authミドルウェア、リレーション、認可(abort_if)
8 仕上げと発展 ページネーション、検索、Docker設定の読み解き、学習マップ

基礎編修了時のレベル:ゼロからCRUD+認証つきのWebアプリをLaravelで作れる。


発展編(育てる力)全8回

回 タイトル 主なトピック
1 自動テスト入門(Pest) テストDB、Feature テスト、認証・認可のテスト、AAAパターン
2 Policyで認可を整理する 認証と認可、Policy、Gate::authorize、@can、テストを安全網にしたリファクタ
3 FactoryとSeeder Factory、state、リレーション生成、テストのリファクタ、Seeder
4 API化とSanctum install:api、apiResource、APIリソース、トークン認証、APIテスト
5 キュー・メール・スケジューラ Mailpit(自力追加)、Mailable、キュー、Artisanコマンド、スケジューラ
6 フロントエンドのモダン化 Node.js追加、Vite、Tailwind CSS、Bladeコンポーネント
7 本番構成とCI 環境分離、シークレット管理、最適化コマンド、GitHub Actions
8 新機能探検と、その先へ リリースノートの読み方、PHP Attributes、AI SDK偵察、総まとめ

発展編修了時のレベル:テストを安全網に、既存アプリを壊さず機能追加・改善できる。実務チームでレビューを受けながら小〜中規模の開発を任せられるジュニア相当。


実務力編(実務力)全9回

回 タイトル 主なトピック
1 パフォーマンス計測とN+1問題 Debugbar/Telescope、大量データ、N+1発見、Eager Loading、(Cache入門)
2 インデックスとEXPLAIN 生SQLを読む、EXPLAIN、インデックス設計、複合インデックスとカーディナリティ、chunk
3 DB設計演習:タグ機能(多対多) ER図、belongsToMany、中間テーブル、別解比較(個人完結)
4 レガシーコードリーディングとリファクタ 問題だらけのアプリ、問題列挙、特性テスト、切り出し
5 トランザクションと同時実行制御 DB::transaction、ロック、二重送信バグの再現と修正
6 例外処理・ログ・運用の入り口 例外設計、構造化ログ、Context ファサード、調査の疑似体験
7 Webセキュリティ実践 OWASP文脈、XSS/SQLi/CSRF/IDOR/マスアサインメント、「穴を開けられる箇所」
8 コードレビュー(個人版) レビューする側の練習、レビューされる側の作法、AIレビュー活用
9 総合演習:実務の作法で一周 ブランチ→設計メモ→テスト→実装→PR→セルフ/AIレビュー→CI

実務力編修了時のレベル:他人のコード・現実の負荷・セキュリティに対応できる、ミドルの入り口。

具体的には、こう考えてください。

できるようになる 既存プロジェクトに入り、チケット単位の機能追加・バグ修正をテスト付きで出せる。N+1やインデックス不足を指摘されたら自分で計測して直せる。セキュリティレビューの指摘の意味が分かる。PRの粒度とレビューの受け答えが成立する
まだできない アーキテクチャの選定。中規模以上の設計を白紙から引く。SPA構成(Inertia等)の案件に単独で入る。本番障害の一次対応

SPA 構成のギャップは、第4部フロントエンド編で埋めます。 実務力編まででサーバー側の土台が揃っているので、第4部で学ぶのは画面の作り方だけです。

体感として実務半年〜1年分を、コードを壊す恐怖なしに先取りする教材です。「テストがないと怖くて触れない」という感覚を、実務に出る前に身につけられるのが最大の価値だと考えています。

教材形式の変化:基礎編は完全手順書、発展編は後半から自力実装、実務力編は「課題+観点リスト+模範解答は別冊」が基本。資料の中心がコードから判断基準へ移っていきます。


番外編(実務頻出機能)

独立した回として、指定タイミングで差し込みます。

番外編 タイトル 前提 差し込み推奨位置
1 ファイルアップロードとStorage 発展編第3回まで(Factory を使うため) 実務力編第7回(セキュリティ)の前
2 パスワードリセットとメール確認 発展編第5回まで 発展編第5回の後ならいつでも
3 サービスコンテナと依存性注入 実務力編第4回まで 実務力編第4回のあと(いつでも可)
4 既存コードを読むための Eloquent 語彙 発展編第3回まで 実務力編第3回のあとが繋がりやすい
5 副作用と横断的関心事の置き場所 発展編第5回まで 番外編4のあとが繋がりやすい

TypeScript編(型を扱う力)全5回

Laravel をほとんど使わない独立コースです。ブラウザも開かず、コンテナの中でコマンドラインだけを使って「型」に集中します。最終回だけ、Laravel が返す JSON に型と検証を付けて既存のアプリと接続します。

回 タイトル 主なトピック
1 なぜ型を書くのか(型の正体) tsc と tsx、型はコンパイル時に消える、PHP の型との対応
2 基本型と null 安全 プリミティブ、union、リテラル型、null と undefined、?. と ??
3 オブジェクトと構造的部分型 type、名前ではなく形で判断する、readonly、as const、分割代入
4 配列とジェネリクス 壊す操作と壊さない操作、イミュータブル更新、Omit / Pick / Partial
5 境界を守る unknown、型ガード、zod による実行時検証、API レスポンスの検証
  • 前提:発展編第6回まで(app コンテナに Node.js 22 が入っている状態)。実務力編と並行して進められます
  • 急ぐ人へ:第1〜3回まででフロントエンドの学習を始められます。第4〜5回は必要になってから戻っても構いません
  • PHP 経験者向けの近道:PHP 8 の型宣言・PHPStan の知識がそのまま使えるよう、全編を PHP との対比で構成しています。本当に新しいのは「型が実行時に消える」ことと「名前ではなく形で判断する」ことの2点だけです

第4部 フロントエンド編(つなぐ力)全8回

タスク管理アプリの画面だけを、React + Inertia で作り替えます。 認証もルーティングもバリデーションも Policy も、いま動いているものをそのまま使います。

回 タイトル 主なトピック
1 Vite 開発サーバーと、これから作るもの Docker 上の HMR、public/hot、なぜ Inertia か
2 Inertia を導入する 導入手順、Inertia::render、props の送りすぎに気づく
3 JSX とコンポーネント Blade と向きが逆、.map() と key、<x-button> の移植
4 状態とフック useState、イミュータブル更新、useEffect を書かない設計
5 フォームと検証 useForm、FormRequest がそのまま効く、フラッシュの共有
6 画面遷移と永続レイアウト <Link>(転送量が約 1/12)、永続レイアウト、ページネーション
7 props 設計 — 認可と性能 隠すことと止めることの違い、props とクエリの対応、遅延 props
8 テストと CI テストの3つの層、Vitest、CI に型検査とテストを組み込む
  • 前提:実務力編修了後、かつ TypeScript編 第1〜3回まで完了していること
  • 到達点:実務で見かける Laravel + Inertia + React 構成のコードを読み書きできる

付録(副読本)

付録 タイトル 使い方
A 困ったときの調査手順チートシート 基礎編第2回で配布し、全編で手元に置く

各回の共通テンプレート

各回は次の構造で統一されています(最終回は「次回予告」に代えて振り返りと次の部への案内を、番外編は「関連する回」を置きます)。

  1. 今回のゴール(箇条書き)
  2. 前提条件
  3. 本編(手順 or 課題。✅ 動作確認 を随所に配置)
  4. コラム(背景知識・実務での扱い)
  5. つまずきポイント Q&A
  6. チャレンジ課題(答え合わせは次回以降の本文で回収されます)
  7. 次回予告 / 関連する回

学習を最大化するための運用メモ

  • チャレンジ課題の実施率が到達度を左右します。写経して終えた人と、課題まで自力でやり切った人では到達点が大きく変わります。課題をやった前提の記述が後の回に出てくるので、そこが答え合わせになります
  • コミットしながら進めてください。基礎編第1回からの習慣にすると「壊しても戻れる」ので、思い切って手を動かせます
  • 発展編第8回・実務力編は形式が探検/演習寄りです。新機能(PHP Attributes、AI SDK)はAPIが変わり得るため、実施時点の公式ドキュメントを正とし、固定コードは載せていません

スコープ外(この連載では扱わないもの)

「載っていない=重要でない」ではありません。修了後の次の一歩として、意識的に選んでください。

  • Livewire — フロントエンド編は Inertia + React を採る方針です。PHP だけで書ける Livewire は扱いません(第4部第1回で3つの選択肢を比較しています)
  • サーバーサイドレンダリング(SSR) — 初回表示の速さと SEO が必要になったときに検討してください
  • E2E テスト — ブラウザの実体を用意する負担が大きいため導入していません。判断基準はフロントエンド編第8回で扱っています
  • 状態管理ライブラリ — 画面をまたいで持ち回る状態が増えてから。まずは props と useState で足りないかを疑ってください
  • リアルタイム通信(Reverb / WebSocket)
  • 多言語化(本格的なi18n)
  • マイクロサービス的なアーキテクチャ
  • 本番デプロイの実作業(環境依存が大きいため、別途1回設けることを推奨)

ファイル一覧

基礎編  laravel-hands-on-01.md 〜 laravel-hands-on-08.md発展編  laravel-advanced-01.md 〜 laravel-advanced-08.md実務力編  laravel-professional-01.md 〜 laravel-professional-09.md番外編  laravel-extra-01-file-upload.md   ← 発展編第3回以降、実務力編第7回の前までに  laravel-extra-02-password-reset.md ← 発展編第5回のあとに差し込み  laravel-extra-03-service-container.md ← 実務力編第4回のあとに差し込み  laravel-extra-04-eloquent-idioms.md ← 発展編第3回以降、実務力編第3回のあとが繋がりやすい  laravel-extra-05-events-middleware.md ← 発展編第5回以降、番外編4のあとが繋がりやすいTypeScript編(独立コース)  laravel-ts-01.md 〜 laravel-ts-05.md   ← 発展編第6回以降ならいつでも。実務力編と並行可第4部 フロントエンド編  laravel-frontend-01.md 〜 laravel-frontend-08.md付録  laravel-appendix-debugging.md      ← 基礎編第2回で配布。全編で手元に置く  README.md                          ← このファイル(全体マップ)

実務力編の第4回以降では、講師から**「問題だらけのアプリ」**が別途配布されます。受け取ってから進めてください。