書評「これからはじめるLaravel実践入門」
目次:
はじめに
きっかけ
WINGSプロジェクト という、プログラミング関係の技術書を中心に出版している執筆者グループがあります。
大きめの書店のプログラミング書コーナーに行くと、ほぼ確実に置いてある「 JavaScript 本格入門 」や、「 独習 PHP 」のような独習シリーズの著者として有名です。
その WINGSプロジェクトの新刊「 これからはじめるLaravel実践入門 」の出版に際し、レビュアーが募集されていました。
これに応募したところ、幸運にも当選しましたので、今回、本書のレビューをさせていただきます。
入門者の視点
Laravel の入門書である本書をレビューするにあたり、私が書ける範囲は、それほど広くありません。
これまで、 Laravel を仕事としても、趣味としても、利用したことが無いからです。
言語としての PHP は、 AtCoder で緑色パフォが取れる程度には、スラスラ書けますが、実務的なテクニックはよく知りません。
しかしそれは、裏返せば、完全な入門者の視点で、レビューを書けるということでもあります。
まさに、本書が想定する読者として、入門者として、本書を読めるだろうと思います。
Laravel の分かりにくさ
さて本書は、 Laravel の入門書ですから、 「Laravel の分かりにくさはどこにあるか」を、まずは確認しておきたいと思います。
私が思う、 Laravel の分かりにくさは、「設定より規約」にある と考えます。
どういうことか、レビューの前に、ちょっとだけ説明させてください。
設定より規約とは
「設定より規約」(Convention over Configuration)とは、規約(ルールのようなもの)に沿って作れば、細かい設定をしなくても、フレームワークが「よろしくやってくれる」という方針のことです。
規約といっても、法律のように、「守らなければならないルール」ということではありません。
規約のもともとの英語は、「コンベンション」ですから、「多くの人が、これが普通だよねと思って従っている常識」ぐらいの意味です。
つまり、「伝統」とか「慣習」、「暗黙の了解」のようなことで、もしかすると「しがらみ」のようなニュアンスも、含んでいるかもしれません。
Laravel の規約は魔法
Laravel は、「設定より規約」のフレームワークです。
実際、おびただしい数の規約があります。
php artisan listで見られる、大量に用意されているコマンド- MVC 設計のディレクトリ構造
- 静的メソッドのように見えるファサード
- 命名するだけで、勝手に結びつくデータベーステーブルと PHP オブジェクト
- 引数に型を明示するだけで、勝手に注入されるオブジェクト
- その他たくさんのヘルパー関数
正直、わたしのような入門者からすると、これらには理屈(ロジック)があるようには見えず、まるで魔法(マジック)です。
規約の量という Laravel の壁
これらの規約を、機械的に覚えられるなら、 公式ドキュメント を上から読んでいくだけで十分なはずです。
しかし、普通の人間には、これは到底無理です。
生成 AI や、一部の天才を除いて、普通の人間の記憶は、機械的に詰め込むことが、とても苦手です。
通常、人が何かを覚えようと思ったら、過去の他の記憶と連想したり、肉体的行動(キーボードを打つなど)と連結させたり、具体的に困ったり悩んだりした経験と結び付けたりして、少しずつその人なりの記憶を定着させていくことになります。
Laravel の分かりにくさは、一朝一夕にはまったく詰め込み不能な、膨大な規約の量にこそ、その根本原因があると思います。
Laravel 入門書に求められること
Laravel の入門書に求められるのは、このおびただしい数の規約を、効率的に定着させる仕掛けにあるのではないでしょうか。
このように考えたので、このレビューでは、「規約を覚えやすくするため、本書にはどんな工夫がされているのか」という視点で読んでいきます。
本書の概要と特徴
本書の概要
- 書名: これからはじめるLaravel実践入門
- 著者: 山田祥寛
- 出版社: SBクリエイティブ
- 版型: B5変版
- ページ数: 624ページ
- 発刊日: 2026年4月1日
プログラミングの技術書としては、よくあるB5変版(ノートよりも少し横幅が広い)で、600ページを超えています。
第一印象としては、かなりボリューミーな本だなと思いました。
本書の章立て(抜粋)
本書の章立ては、以下のようになっています。
(※ 抜粋しています。全体の目次は、 こちら )
- イントロダクション
- Laravel の基本
- はじめての Laravel
- コントローラーの基本
- ビューの基本
- モデルの基本
- Laravel による CRUD アプリ開発
- ビュー開発
- モデル開発(クエリ)
- モデル開発(リレーション)
- モデル開発(属性、マイグレーション、ファクトリー)
- コントローラー開発
- Laravel アプリの構造
- サービスと依存性注入
- ロギング
- ルーティング
- ミドルウェア
- クライアントサイド開発
- Laravel の高度な機能
- 電子メールを送信する - Mailable
- 時間のかかる処理を非同期に実行する - キュー
- イベントに応じた処理を実装する - リスナー
- アプリの国際化対応
本書の特徴1: 豊富なサンプルコードによる実践学習
まず、本書の特徴として、サンプルコードが豊富にあります。
各章それぞれ、多様なサンプルを使って、実装方法と、その結果が解説されています。
どのような操作、実装をすれば、どのような効果が出るのか、各章、各ページ、その説明が詰まっています。
もちろん、一般的に技術書には、プログラムの実装例が書かれてあるものですが、本書は、類書と比べても、その量が多いと感じました。
また、書籍によっては、プログラム部分のデザインがこなれておらず、「どのファイルを編集しているのか分からない」、「どの部分が前から変わったのか分からない」、「紙の幅による改行なのか、プログラム自身の改行なのか区別がつかない」といった見にくさがある技術書もあります。
しかし、技術書の出版経験が豊富な WINGSプロジェクト(代表の山田祥寛氏)の書籍であるだけに、すべてのプログラムについて、
- 編集ファイル名の明示
- 編集・変更部分を太字にし、特に解説される部分には番号を振る
- 紙幅理由の改行部分にはマーク
などの工夫がされており、見やすく、実際に自分で試しやすくなっています。
タイトルの通り、「Laravel を動かしながら、実践的に入門する」という意図を感じました。
本書の特徴2: MVC 中心の章立て
上記の章立てからも分かる通り、 MVC を中心とした章立てになっています。
メインの解説は、第4章がビュー(V)、第5章から7章がモデル(M)、第8章がコントローラー(C)となっており、機能別になっています。
また、 MVC を合計3回繰り返す構成になっています。
まず、第2章で、1周目の MVC (ほぼ C のみ)を実装し、全体の動きを把握します。
次に、第3章で、一段階掘り下げて、 2周目の MVC を実装します。
そして、第4章から8章までかけて、3周目の MVC を、さらに掘り下げながら実装していきます。
とくに、モデルの解説は、3章に渡って詳しく説明されています。
たとえば、第6章は、テーブル間のリレーションの設定に割かれています。
「書籍のレビューサイトのようなデータベースを作成する」という、おおまかなストーリーがあり、「メンバーと著者」や「レビューとそのコメント」など、なんとなくテーブルどうしの関係性がイメージできるようになっているので、それほど迷わずに実践できるのではないかと思います。
ルーティングや、サービスの注入、ファサードなどは、最初の方で、操作方法のみ軽く触れられる程度で、詳しい解説は、第9章以降になります。
Laravel の中心設計が、 MVC 設計なので、このような構成になっているのだと思いますが、ルーティングなどの全体処理の解説を後回しにしているのは、特徴的ではないかと思います。
本書の特徴3: Why よりも徹底的に How
本書では、「何故」ではなく、「どうやって」の説明に集中します。
このことが、「実践的である」という第1の特徴にもつながるのですが、どんなコマンドでボイラープレートを作り、どんなファイルを、どう編集すれば良いか、その結果、どんな処理になるか、が、具体的に列挙されていきます。
「何故を問わない」とは、たとえば、
- どうして、 Laravel では MVC パターンが採用されているのか
- どうして、ファサードは静的メソッドに擬態しているのか
- どうして、データベーステーブルからモデルクラスまで一気通貫する設計なのか
のような、「何故」は、そもそも問われませんし、もちろん答えもありません。
つまり、魔法のように見える部分のほとんどは、本書を読み終えても、魔法のままということです。
(とはいえ、ファサードの正体などの解説はあるため、処理の裏側をまったく説明しないというわけではありません)
むしろ、魔法のような規約を自在に使えるようになることを目指し、魔法を魔法として学びながら、結果的にその便利さを理解するという仕組みになっています。
ある意味、実用主義的で職人気質な Laravel らしい、実用的な解説書になっていると思います。
良いところ
ここからは、「大量の規約をどうやって覚えやすくするか」という視点で、本書の良いところ・悪いところをレビューします。
豊富なサンプルを使った実践的な学習
これは、特徴1 にも書きましたが、サンプルを自分で動かしてみることの利点です。
記憶の定着において、自分でキーボードを打って、体験してみるというのは、とても重要なことです。
artisan コマンドを実行し、プログラムを実装し、そして開発サーバーで確認する、という繰り返しにより、入門者にとって圧倒的に足りない、さまざまな経験をすることができます。
既成のサンプルを動かすだけの部分もありますが、その場合も、自分でコマンドを打ってみて、編集してみると良いと思いました。
また、本書のデザインがこなれていることや、おおまかなストーリー性があることの相乗効果もあって、挫折しにくい仕組みにもなっています。
繰り返し学習の効率化
学習において、繰り返し作業もまた、重要です。
エビングハウスの忘却曲線 などが有名ですが、一定時間が経過した後に、再度同じ作業を繰り返すことで、記憶を思い出しやすくなります。
もちろん、すべてのコマンドやメソッドを、丸暗記している必要はありません。
しかし、プログラム実装中に、あるいはプログラム生成 AI に指示をするときに、「たしか、こういうときに使えそうなメソッドがあったな…」と思い出せることは、とても重要です。
思い出すためには、「忘れかけたときに思い出した」という経験が役に立ちます。
本書は、その章立てにおいて、 MVC を何度か繰り返すことになります。
本書を一周読み進めるだけでも、ある程度の繰り返し学習にはなります。
そして同時に、機能別の(しかも MVC 中心の)章立てになっていることにより、ある程度のリファレンス性を保持しているところも良いと思いました。
技術書の中には、「ひとつのシステムを作成する」という強いストーリーを重視するあまり、後から読み返すと、さまざまなファイルを横断的に編集するため、読み返しにくい本というものもあります。
しかし、そのような書籍と違い、本書のストーリーは、とてもおおまかなものです。
本書の目次を見れば、ツリー状に機能が分かれているので、「だいたい、この辺に書いてあったな」がすぐに見つかり、後から読み返しやすくなっています。
まだ読み終わったばかりの今の時点では、「思い出す」という作業は発生していませんが、将来、自分で何か実装するときに、この章立ては、とても役に立ちそうだなと思っています。
悪いところ
実践しない人には向かない
本書は、読むだけの人には向いていないと感じました。
実際に、自分の PC で Laravel を実行してみて、結果を確認することで、意味があるように思います。
読むだけで記憶に残る知識とは、論理関係が劇的だったり、意外な推論があるものだと思います。
たとえば、「エッフェル塔が建てられたパリ万博は、フランス革命のちょうど100年後」とか、「円に内接する三角形は、1辺が直径のとき必ず直角三角形になる」とか、印象的なつながりを持つ知識は、読むだけでも楽しく、覚えやすいものです。
しかし、 Laravel の規約は、そのような種類の知識ではありません。
規約とは、(もちろんのことながら、)意外性の連続ではなく、「ただ便利なだけのもの」の集積です。
このため、「サンプル、コマンド、実装、実行結果」の繰り返しは、本書を読むだけの人にとって、意外性がなく、単調に見えてしまうでしょう。
困っていない人には向かない
たまたま、本書を読んでいる期間に、福岡市の赤煉瓦文化館で、「 Laravel入門~MigrationとEloquent~ 」というイベントをやっており、参加してみました。
イベントの内容としては、 Sqlite3 のコンソールから、直に SQL 文を実行してみて、その面倒さを実感し、その後、 Eloquent で同じ処理を実装してみる、というものです。
正直、「Eloquent 完全に理解した」とは、まったく思いませんが、それでも Eloquent の便利さの一端を実感できた経験でした。
この経験は、同時に、「困った」「面倒だ」という経験が無いと、本書で紹介されている Laravel の便利さを実感しにくいのではないかとも感じました。
おそらく、まだ私の知らない「便利さ」が、本書に大量に詰まっているのだろうと想像します。
しかし、まだ困った経験の少ない私には、その部分を読みこなせず、ただ処理をなぞっただけの部分も、たくさんあるだろうと思います。
本書を最大限生かせるのは、これまでに web アプリを作った経験があり、さまざまな「困った」「面倒だ」と経験した人なのかもしれません。
あるいは、たとえばリードエンジニアがいる組織で、 Laravel 初心者に本書を一読させ、底上げを図ったり、レビュー時に「ここらへんを読んでみて」と指示をする、というような使い方に合致するのかもしれません。
まとめ
以上のように、本書は、 規約の定着を促進するためのガイドブック として利用できると思います。
- 実際に手を動かすための、たくさんの実装サンプル
- 実践を停滞させないための、デザインや、おおまかなストーリー
- 読み返しや復習をしやすくする、リファレンス性
このような仕掛けや工夫が凝らされており、大変完成度が高いと思いました。
また同時に、「実際に手を動かす」ことの大切さや、「困った事態に直面する」ことの不可欠さなども垣間見えました。
わたし自身も、まずは本書を傍らに置いて、小さなアプリケーションから自分で作り始めてみたいと思います。
最後までお読みいただき、ありがとうございました。
何かお気づきの点がありましたら、 お問い合わせ ください。