ヒビノログ

個人的なメモを淡々と記録していくブログ。最近はLaravelやスマートフォンの話題など。

Laravelエキスパート養成読本

一昨年あたりから個人的にとても気に入って使っていて、動向も追っているPHPフレームワーク Laravel のはじめての紙の書籍が4月21日に発売になります(拍手)!

著者の一人、ytakeさん(4章担当)から献本いただきました。ありがとうございます。

本書はLaravelをこれから学んだり使い始めようとする人に対して、Laravelの文化、概要、情報源についての情報や、MVC構造を持つWEBアプリや、REST APIアプリの作り方をサンプルをもとに学ぶ事ができる構成になっています。また既に利用者である人に対して、最近リリースされたLaravel5の情報やIoCコンテナファサードといったLaravelの肝とも言える部分を改めて整理できる内容にもなっています。

目次
Chapter 1 - Laravelをはじめよう
Chapter 2 - MVCモデルが基礎からわかる
Chapter 3 - IoCコンテナファサード、サービスプロバイダ、Eloquent
Chapter 4 - Laravel5の新機能を紹介!
特別記事 - PHPフレームワーク最新事情
Chapter 5 - 実践!REST APIアプリケーション

週末に読んでみたので、簡単に感想を。

Chapter 1 - Laravelをはじめよう
Laravelのリファレンスや関連書籍をひとりで翻訳されてきた川瀬さんによる記事でこの本はスタートします。Laravelがこれまでどんな道のりを歩んできたかが綴られる「Laravelストーリー」はステキです。フレームワークの背景や全体の概要、そしてコミュニティについてうまくまとめられており、ここからLaravelの世界に入って行けます。

Chapter 2 - MVCモデルが基礎からわかる
サンプルをもとにMVC構造のアプリをLaravelを使って作っていくという内容です。MVCの話とLaravelの話が混ざって出てくるので、そうやって読み進められる前提の知識は必要かなと。
細かいですが、文中で紹介されるコードがLaravel公式のものなのか著者が作ったものなのかは明記があると良いと思いました(GitHubのURLでだいたいわかるのですが)。

Chapter 3 - IoCコンテナファサード、サービスプロバイダ、Eloquent
Laravel4までは「app」というフォルダの中にMVCそれぞれのフォルダがあり、ネット等の情報を頼りになんとなくでもアプリを作る事ができます(私もそうやってLaravelをはじめた一人です)。
ただしもっと拡張性を高めるには、もっとテストしやすくするには、もっとLaravelっぽく作るには、ということを考えると、Laravelの特徴であるIoCコンテナファサードと向き合うことになります。正直とっつきにくい部分があることも確かですが、3章担当のlocaldiskさんが非常にわかりやすく解説してくれています。個人的には今までモヤッとしていたところがだいぶスッキリして嬉しいです。
ちなみにEloquentで複合キーのテーブルを扱う方法については以前記事に書いているのでよろしければ見てください:D

Chapter 4 - Laravel5の新機能を紹介!
今年2月にリリースされたばかりのLaravel5についての情報。エキスパート度高めです。Laravel4から5への移行をはじめ、コマンドバスやミドルウェア、フォームリクエスト、Laravel Elixirといった機能がビュンビュンと紹介されていきます。どちらかというとLaravel4以前で開発した経験のある人が、自分の書いたプログラムはLaravel5だとこんな風に移行&リファクタリングできそう、とイメージしながら読むと良い章だと感じました。より一歩進んだ使い方をするためのナレッジが詰まっています。

Chapter 5 - 実践!REST APIアプリケーション
Laravelを使ったREST APIアプリの作り方の紹介です。2章で紹介されているMVCよりも独立性の高いクラス構成になっていたり、ディレクトリ構成にも一工夫加えられている感じです。PHPUnitを使ったテストにも触れられており実践でそのまま使える内容が多いです。5章担当の新原さんblogでもLaravelに関する記事を時々書かれているのでそちらも参考にすると良いと思います。     ということで、これからLaravelをはじめる人は2章と5章から、既に経験のある人は3章4章5章を、という感じの内容でしょうか。1章はみんな読むといいです;)

※Chapter2に掲載されている著者のサンプルにXSS脆弱性が含まれているようです。フォームからの入力値をViewに出す際は {{ }} ではなく {{e($value)}} か {{{ }}} としてエスケープが必要ですね。

Laravelエキスパート養成読本[モダンな開発を実現するPHPフレームワーク!] (Software Design plus)

Laravelエキスパート養成読本[モダンな開発を実現するPHPフレームワーク!] (Software Design plus)