ごえもん

2015.05.02

良書です。『Laravelエキスパート養成読本』。

ごあいさつ

お久しぶりです。アライドアーキテクツカードゲーム部部長の石川です。最近タルキール龍紀伝×運命再編ドラフトにハマっています。以前リアルなカードゲームショップでガチな空気感の中ドラフトを行ってトラウマを抱えて以来、もっぱらオンライン専門のドラフターになっています。誰か僕と一緒に優しく楽しくドラフトしてくれる方募集してます。

どうでも良い前置きをしてしまいすみません。本題に移ります。

Laravel国内初の書籍登場!

ついにLaravelの紙書籍が技術評論社さんから出版されました。

僕もこのブログで何度かLaravelについては書いていますが、世間一般で見てもLaravelの人気はかなり高くなってきています。Qiitaの2014年 Webアプリケーションフレームワークトレンドの記事を見てください。LaravelはPHPフレームワーク界で赤マル人気急上昇中です。これは要チェキです。

Laravelエキスパート養成読本[モダンな開発を実現するPHPフレームワーク!] (Software Design plus)
川瀬 裕久 古川 文生 松尾 大 竹澤 有貴 小山 哲志 新原 雅司
技術評論社
売り上げランキング: 2,113

この本の共著者であるytakeさんより献本して頂きましたので、僭越ながらレビュー(というか概要とか感想)を書いていきたいと思います。

結論から言うと

良書です。日本のLaravel界を牽引してきたといっても過言では無い方々が執筆されていることもあり、非常にわかりやすい内容となっています。Laravelの基本的な機能から始まり、Laravel5の新機能までを含めてシンプルにまとまっていて、サンプルアプリケーションのある章では実際に手を動かしながらLaravelの理解を深めていくこともできます。

Laravelを触ったことが無い方(というよりこれまでPHPフレームワークに触った事が無い方)から、Laravelに触ったことがあって、理解を深めたい方のどちらにもオススメです。以下簡単に各チャプターについて書いていきます。

Chapterごとの感想

Chapter1. Laravelをはじめよう

Laravelがここまで人気になったストーリー〜Laravelのセットアップ〜Hello Worldの章です。Laravelドキュメントの日本語翻訳などをしてくださっている川瀬さんが執筆されています。

ストーリーの部分は単純に読み物として面白いです。「開発行程を楽しいものにする」「幸せな開発者が、最高のコードを書く」というLaravelの哲学を知ることで、この先の章を読み進めていくのにワクワクする内容になっています。

その次に動作環境の確認、Homestead(Laravel用のVagrantBox)、composerの説明があった上でLaravelのセットアップするまでの流れが書かれています。これから初めてLaravelに触る方はここを読みながら進めれば簡単にLaravelを体験できるはずです。

Chapter2.MVCモデルが基礎からわかる

Laravelって良く聞くけど、フレームワークとか触ったことないんだーって友達に噂されると恥ずかしいし・・・、という方もご安心、MVCアプリケーションを基礎から学ぶことが出来る章です。また、モダンなWebアプリケーションの特徴を押さえることが出来ますので、新しめのフレームワークを使った経験が無い方にとっては、この章の内容を読むと「へー、こういう考え方があるのか」という示唆が得られると思います。

Chapter3.IoCコンテナ、ファサード、サービスプロバイダ、Eloquent

Laravelの特徴的な概念を丁寧に説明してくれている章です。この章から普段からWAFを使っている人向けの内容が多くなっていきます。単純に機能についての説明をするだけでなく、Laravelの知られざる?便利な機能をTips的に紹介してくれています。こういうTipsはインターネット上に転がっている各種サンプルアプリケーションを作る系の記事にはあまり書かれていないので、Laravelを使ったことがある人も「うおーこんな機能あったんか、知ってればあの時もっと素直にコーディングできたやんけ」と僕の様に思うことでしょう。

Chapter4.Laravel5の新機能を紹介!

この本を献本してくださった竹澤さんの章です。Laravel5の新機能を紹介してくれています。Laravelは機能を柔軟に拡張できることもウリのひとつなので、追加された新機能についてもどうやれば機能を拡張していけるか、など実践的な内容で書かれています。また、Laravel4からLaravel5に移行する為には何をするべきかも簡潔にまとまっており、Laravel5へのバージョンアップを検討している人にとっても非常に有用であること間違い無しです。以前僕がこのブログでLaravel5の新機能について書いた記事の中で「Bladeのサニタイジング方法変わっちゃって移行する人辛そうだね!」とか書いたんですが、しっかりその辺の対応策についても書かれていました。そりゃちゃんとこういう互換性用意してるよね、と思うと同時に痒いところに手の届く内容が書かれていることに脱帽です。

あと、個人的にコマンドバスとジョブキューの項は、僕自身がずぇんずぇん理解していなかったこともあり、本当に参考になりました。

Special PHPフレームワーク最新事情

SymfonyやCakePHPなどのPHPフレームワークについて、ざっくりと概要が説明されています。メジャーどころのPHPフレームワークを触った経験があまり無いので、他のフレームワークがどういう設計思想を持っているのかをさーっと知る事が出来ました。特にいろいろと前評判だけは聞いていたCakePHP3.0、やはり良さげですね。ちょっと弄ってみようと思います。

Chapter5.実践!REST APIアプリケーション

REST APIアプリケーションを実際に手を動かしながら学べる章になっています。昨今のJavascript界隈の進化の関係もあり、今後ますますWebアプリケーションにおけるクライアント側での役割が大きくなることは間違いないと思います。レンダリングはクライアント側で行い、サーバはAPIとして提供するという形は今や全く珍しくない構造です。

ルーティングからコントローラ、サービス呼び出しの処理フローを一連で体験することが出来ます。また最終的にどうテストするべきかまで言及されていますので、ある程度までLaravelを触れる様になった人が実際に業務でアプリケーションを組み立てていく時の参考にもなると思います。

さいごに

Laravelは僕もそれなりに使っているのですが、それでもかなり知らなかった/よく理解してなかった部分がありました(特にEloquentまわりとコマンドバス)。これからLaravelを始めようとしている人も、もうある程度Laravelを触っている人も、ゴールデンウィークはこの本を読みながらLaravelを触ってみてはいかがでしょうか?(もう始まってるけど、、、

p.s.

技術評論社さんから正誤表が出てます(http://gihyo.jp/book/2015/978-4-7741-7313-9/support)。

Chapter2でユーザー入力を出力の際にエスケープしてないという問題があるみたいです(「Laravelエキスパート養成読本」の内容に含まれる脆弱性について)。

本を読む際には合わせて確認した方が良いですね。