Help us understand the problem. What is going on with this article?

日本人に優しいLaravel

More than 5 years have passed since last update.

みなさん、Laravelしてますか?

Laravelはここ1年で急激な台頭をみせているPHPのフレームワークです。

githubのスター数は1位のSymfonyに続き第2位です。

以下がGoogleトレンドの結果になりますが、Laravelがいかに近年人気急増中であるかがみてとれると思います。

201012_201312.png

そんなLaravelですが、実は日本語の書籍がたくさんあることをご存知でしょうか?

まだ日本語が原著のLaravel本はでていませんが、海外のLaravel本(電子書籍)を翻訳した日本語版ならたくさんあります。

なんと日本人に優しいことでしょう!

今回は、それらLaravel本の中から厳選して2冊ご紹介したいと思います。

Laravel Testing Decoded

laravel-testing-decoded-japanese

Laravel Testing DecodedはLaravelでmodel,view,controller,その他DB,IoC,APIのテスト等
Laravelで開発を行うときに遭遇するであろうほとんどすべての状況に対して準備から実践をひとつひとつ丁寧に解説してくれる本です。

LaravelにはIlluminate\Foundation\Testing\TestCaseという標準のライブラリがあり、そこにはPHPUnitをよりわかりやすく便利に実行するためのメソッドがたくさん用意されています。

例えば、ブログの投稿情報をすべて取得してviewを返すコントローラのテストならMockeryを使うことでPHPUnitよりも直感的に以下のように書くことができます。

public function __construct()
{
    $this->mock = Mockery::mock('Eloquent', 'Entry');
}

public function tearDown()
{
    mockery::close();
}

public function testIndex()
{
    //PHPUnitのデフォルトより直感的で読みやすい
    $this->mock
         ->shouldReceive('all')
         ->once()
         ->andReturn('foo');

    $this->app->instance('Entry', $this->mock);
    $this->call('GET', 'entries');

    $this->assertViewHas('entries');
}

小さなことですが、こうしたヘルパーによって可読性があがるとテストを行うモチベーションも上がります。

ところで、Laravel本を紹介するのにどうして1つ目がテストの本なんだ?と思われるかもしれません。

たしかに私も1つ目ならまずはLaravelの使い方を解説した本とかチュートリアルをまとめた本だとか、
まずはLaravelでアプリ開発をする方法の本を紹介しようと考えていました。

しかし、それでもlaravel Testing Decodedを1番目に紹介したいと思ったのは、この本がLaravelを超えて、PHPでのテスト、しいてはPHPでTDDをする方法について
解説している書籍であるからです。

私が働いている会社ではLaravelを使っているわけではないですが、PHPでのテストについて勉強するためにこの本を読みました。

実際この本に書いてあるコードを引用して紹介できないのが残念ですが、$15.00でこの網羅性は買って損はないなと思います。

Implementing Laravel

Implementing Laravel

Implementing Laravelは、LaravelのIoCコンテナや依存注入(DI)といった便利な仕組みを具体的にアプリに実装するにはどうしたらよいかということを解説してくれる本です。

Laravelを日本語で勉強する人はまずこちらのドキュメントを読んだり、Laravel4、学習の道に沿って実際に手を動かしてみるという流れになると思います。

このフローを踏めば、たいていのアプリはつくることができるしLaravelの良さもわかるはずです。

私もこの学び方でShareMemoというサービスをつくりました(現在はclose中)。

しかし、このアプリではLaravelのIoCコンテナと依存注入という概念を使用していません。

理由は依存注入がなくてもアプリはつくれるし、むしろ慣れていないうちはこの概念を使わずにつくった方が完成が早いからです。

ただ、「LaravelをもっとLaravelらしく使いたい」「Laravelで大規模なサイトを構築したい」と思うのならIoCコンテナと依存注入という概念を避けて通れません。

そんなときに役に立つのがこのimplementing Laravelという本です。

この本を読めば、依存注入をLaravelでどう解決し、リポジトリーパターンをどう具体的なコードに落とし込むかがわかります。

本書はLaravel初心者には向かないかもしれないですが今後Laravelを実運用で使っていきたいなら読むと得られるものが多いと思います。

その他(日本語訳あり)

ちなみに私は日本語翻訳されたLaravel本はすべて読んでいるので、その他の本に関しても簡単に紹介できればと思います。

この本は、その他で紹介するべきでないかもしれません。なぜなら、現状日本語訳されているLaravel4本の中で一番実践的で濃いチュートリアルを含んでいるからです。おそらく、Laravel公式ドキュメントを読んだ後、この本をやればLaravelでのアプリ作成に困ることはないかもしれません。個人的にはlaravel4とBackbone/Ember/Angularを使ってリアルタイムチャットを実装する例が大変ためになりました。上記2冊並におすすめです。

この本はLaravelの開発者であるTayler Otwellが書いた書籍です。それだけです。Implementing Laravelの方が個人的には良いと思います。

Laravel4の公式ドキュメントの日本語訳版です。サイトで無料で日本語版が見られるのでわざわざ買う必要はないかもしれません。私は買いました、5ドルなので寄付も兼ねて。

Laravel3の聖典のような本。英語でよいなら著者のBlogを見るとほぼ同じことが書いてあります。

その他(日本語訳なし 2013/12/01現在)

『Code Happy』のLaravel4版です。まだ日本語訳はありませんが、話を聞く限り公式ドキュメント+αくらいな内容なようです。

最後に紹介するこの本は、いま最も日本語訳版が待ち遠しいLaravel本です。500ページを超える鈍器のようなページ数ですが電子書籍なので安心です。これがおそらくLaravel4本の決定版になるのではないでしょうか。リリースは来年らしいのでとりあえずは英語版を購入して我慢です。

最後に

冒頭でも書きましたが、Laravel4はまだまだ若いフレームワークです。
しかしこれほどたくさんの書籍が世界中で発表され、各地の言語に翻訳されています。
幸いにも日本ではKawase Hirohisa氏がすごいスピードで日本語訳をされているので英語が苦手な方でも無理なく読むことができます。
日本ではFuelPHPやCakePHPが人気ですが、ここで紹介した書籍を片手にLaravelデビューしてみてはいかがでしょうか?

以上、Laravel Advent Calender 1日目の記事でした。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away