Laravel入門情報 2018年10月版

追記：2022年3月現在ではこちらの記事が参考になります。

https://zenn.dev/imah/articles/31c28f306487e2e5d141

---

その辺のレンタルサーバーで気軽にウェブサービスを動かしたいのでLaravelを始めようと思う。

## バージョン選定

日本語の情報はバージョン5.1のものが豊富なようだが、5.1はすでにバグ修正が止まっており、今後の運用を考えると5.5(LTS)か5.7を選択したい。

Laravelのリリース日と修正期間のまとめ
https://qiita.com/ykhirao/items/576a9eea735f91350072

5.5と5.7の違いを見ると5.7を選択するネックとなりそうなのはrequiredなPHPが7.0.0から7.1.3に上がったことだ。
PHP 7.1.3は2017/03/16のリリースですでに1年以上経過しており、共有レンタルサーバーなどでも普通に使えたりする。
じゃあ5.7で行こう、と思ったのだが今後のバージョンに追従する必要があり、今後さらに環境の要件が厳しくなることも考えられるので、ここは安パイを取って5.5にする。
5.7は出たばかりなのでドキュメントも少なそうでもあるし。(5.6もそれほど情報が多くない)

CHANGELOG-5.6.md
https://github.com/laravel/framework/blob/master/CHANGELOG-5.6.md
CHANGELOG-5.7.md
https://github.com/laravel/framework/blob/master/CHANGELOG-5.7.md

## インストール

5.5向けのドキュメントがある。
https://readouble.com/laravel/5.5/ja/installation.html

`laravel new blog`のコマンドでインストールしてしまうと5.7が入ってしまうので、その下にあるバージョンを明示したインストール方法にする。

## クイックスタート

クイックスタートのドキュメントは5.2のものしかないのでそれを参照する。
https://readouble.com/laravel/5.2/ja/quickstart.html

ありがたいことに5.5で5.2のクイックスタートを進める方法を解説しているブログがある。
公式のクイックスタートにはないDB周りの設定なども書かれているので副読書として参照する。
https://beiznotes.org/making-task-list-with-laravel55-1/

### 中級者向け

腕に自信があればいきなり中級者向けタスクリストのチュートリアルを実践してもよいかも。

https://readouble.com/laravel/5.2/ja/quickstart-intermediate.html

### ハマりどころ

#### routes

5.2では`app/Http/routes.php`にあったroutes.phpは5.4から`routes/web.php`に移動している。

#### utf8mb4

5.4からutf8mb4がデフォルトになっているため、環境によってはvarchar(255)に対してインデックスが張れないことがある。

Laravel5.4 + MySQL5.5.9 でusersテーブルのマイグレーション時に Syntax error
https://qiita.com/beer_geek/items/6e4264db142745ea666f
LaravelでMysqlのcharsetをutf8mb4にしてエラーが出るときの対応方法
https://qiita.com/ichi944/items/03e3bb0bbc97a965faf7

#### （中級）Auth

Auth routingやリダイレクトの設定は不要らしい。
https://teratail.com/questions/91980

#### （中級） ビューの表示

welcomeのビューを作成する手順がない気がする。

## 新しめの書籍

PHPフレームワーク Laravel Webアプリケーション開発 バージョン5.5 LTS対応
https://www.amazon.co.jp/dp/4802611846/
記事編集時点ではまだ出版されていないがかなり良さそうな著者陣。

PHPフレームワーク Laravel入門
https://www.amazon.co.jp/dp/4798052582
Laravel5.4対応で5.5の開発版でも動作確認されている。
かなり初心者向けに書かれていて他フレームワークの経験者にとってはまだるっこしく、サンプルコードの質もいまいちなので、どうしても紙の書籍がほしいというわけでなければ手を出さなくても良い。
以前は入手困難だったが今は普通に売っている。（4月末にkindle版も出た）

PHPはじめてのフレームワーク Laravel 5.5対応 ステップ１
https://www.amazon.co.jp/dp/B06XR2LRZK/
クイックスタートをベースとした増補版といった内容。
5.5に対応しており、説明が豊富で開発環境構築からデプロイまで書かれているのは嬉しいが、サンプルコードの質については不安な部分が多少ある。

Laravel 5.5 サンプルプログラム
https://www.amazon.co.jp/dp/B078KDCPLK/
写経には良さそうなサンプルプログラム。
正解のコードだけを提示するのではなく、いくつか実装パターンを見せてそれぞれのメリット・デメリットを説明していたりというアプローチも自由度が高いLaravelを理解する上で良さそう。

はじめてのLaravel5.6入門: PHPフレームワークLaravel5.6とPaizaCloudを使って10分でWebサービスを作る
https://www.amazon.co.jp/dp/B07BDPHJDK/
安いけど内容はこの記事と内容が同じ。
https://paiza.hatenablog.com/entry/2018/02/16/paizacloud_laravel

### その他

Laravel: Up and Running: A Framework for Building Modern PHP Apps
https://www.amazon.co.jp/dp/B01NBBYDA6/
Laravelの作者も推薦している良書らしいので洋書でよければ読んでおきたい。5.3ベース。

Laravel 5.5入門
https://dotinstall.com/lessons/basic_laravel_v2
動画で学びたければ。

【2日でできる】はじめての PHP 7 x Laravel 5.5 入門
https://www.udemy.com/php7study/
こちらも動画（買い切り）。

## チュートリアル＆プラクティス

はじめてのLaravelアプリケーションガイド
https://qiita.com/Fendo181/items/dece727ea402552fee19
Laravelでウェブアプリケーションをつくるときのベストプラクティスを探る
https://qiita.com/nunulk/items/b1e2da51b5dabab92da0
Laravel open source project で参考になりそうなもの
https://qiita.com/acro5piano/items/8dc4597e12d9050c0708
Laravel: Best Practices
http://www.laravelbestpractices.com/
alexeymezenin/laravel-best-practices
https://github.com/alexeymezenin/laravel-best-practices
octobercms/october (Laravel5.5系でかなり参考になりそう)
https://github.com/octobercms/october

## まとめ

思った通りLaravelはRailsなどと比べて日本語の入門情報が少ないので、全くフレームワークに触れたことがない人がいきなりLaravelを始めようとすると苦労するかもしれない。
「ウェブ職人のためのPHPフレームワーク」と名乗っているのは伊達ではない。

## See Also

Laravelをこれから勉強しようと思っている人へ
https://qiita.com/fagai/items/1d8dc71d3cbe33ba8e11