PHP
laravel

Laravelをこれから勉強しようと思っている人へ

ここ最近Laravelの需要が増えてきた結果、新参の人がどんどんLaravelを選択していってる傾向に感じます。

そこで、今現在Laravelで選ぶべきバージョンに関して軽く書きたいなと思います。
現在(2017/09/11)の最新は5.5(LTS)です。→5.6も出たし、5.1のサポートも終わってしまうので5.5を触ったほうが良いかも。情報は少ないかもですがソース読もう(2018/3/24)

PHP初心者、一度もフレームワークを使ったことがない人、英語を読むのが辛い人

正直なところ、最初にLaravelを選択するのはあまり良い選択肢では無いでしょう。
他のフレームワークを一度触ってからでも遅くありません。パーフェクトPHPなどの本を一度やってくることを勧めます。(結構古い本ですが、PHPを理解するにはおすすめです。(Composerに関しては書いてないので、PHP: The Right Wayを見ましょう))
現状でまあまあしっかりとしたチュートリアルが揃っているのは一つ前のLTSである5.1です。

5.2~5.5は一度勉強してからにしましょう。Laravelはマイナーバージョンアップで結構仕様や、ディレクトリの構成が変わります。5.1から5.2はそれほどでもありませんが、5.3,5.4に行くにつれて必須ではないディレクトリが削除され、自分自身でディレクトリを作ったりする必要が出てくるためです。
(ほかにも認証の仕様が変わるとか、フロントエンド周りにも変更があるので勧めません。)

で、結局勉強するなら何が良いの

まずはじめにやるべきは、ドキュメントのチュートリアルです。

1つ注意点として、最初のインストールコマンドなのですが
composer create-project laravel/laravel quickstart --prefer-dist
ではなく
composer create-project laravel/laravel quickstart "5.1.*"
としてください。そうしないと最新の5.5が入ってしまいます。

また、5.1だけの知識であれば、ララ帳 も良い教材です。
ただあくまでも5.1だけの知識。5.2以降に関しての補足などは全く書いてないので注意しましょう。
先程も書いたとおり、最新のバージョンでは結構なディレクトリの変更があるのでちゃんと5.1を選択して入れましょう。

次に上げるとすれば、Laravel Room というサイトが良いです。
こちらは5.2や5.3に上げた後の内容も記事としてあるので良いでしょう。
現在は閉鎖中です。

また、ドットインストールにもLaravel5の入門動画が存在します。
こちらは5.2を前提としていますが、実際に動かす動画なので良いかもしれません。(ただし途中からプレミアム会員のみ見れる)

この5.1の全般的なことを知るために、先程のチュートリアルでも紹介した日本語化しているドキュメントも有益です。
5.1 Laravel - Readouble

そうそう、ちょっとLaravelの本を調べていたらすぐにこんな本が出るみたいです。

PHPフレームワーク Laravel入門
名前は凄く標準的な感じなのですが、中身はどうなのでしょう。(CakePHP3の入門書では誤字が大量にあり問題になっているようですが)

PHPや他の言語でフレームワーク使っていた人

パワーがある人は最新の5.5を使うと良いでしょう。LTSは良いです。2年は必ずサポートされるので社内のプロジェクトでも安全安心。(たまにこれは良いのかという変更も入ることがありますが)

5.1を利用する場合は初心者向けに上げたようなサイトをみたり、
Laracastsというサイトがあるので、そちらで英語の教材の動画を見ることが可能です。
Laravel,シリーズ物に絞った結果 - Laracasts

日本語のドキュメントに関してはほとんど5.5の翻訳が完了しているのもあり、できそうな人はすぐ5.5からやりましょう。

もしも、PHPに関する経験が浅い場合は PHP: The Right Way を見ると良いでしょう。また、PSR(PHP Standards Recommendations)に関しても目を通しておいたほうが良いです。

正直、こっち側の人はある程度パワーを持ってる人だと思うので、あまり言うことがないです・・・。

私の場合

ちょっといいねの数がちょいちょい来るのと、今私がLaravelを触ってないこともありアップデート出来てないのを申し訳なく感じるので、私が理解していった方法を軽く書きます。
といっても、私はLaravelの本質を理解するのに1年~2年かかりました。

私の場合、当時FuelPHPの情報をアウトプットしていましたがFuelPHPの更新状況やちょっとうーんとなる点が出てきていたので情報収集をしていたところ、勉強会でたまたまLaravelを知りました。
当時は4系で、IoC Container(現在のサービスコンテナ)やFacade等、正直名前からは想像が難しくよくわからないものが多かったです。(それまでやってたFWはCodeIgniter2系やFuelPHP1系)
根幹がIoC Containerなのは勉強会でなんとなくわかったので、最初はとりあえず見えてるControllerやView、Model周りの知識を軽くつけてからIoC Container、通称DIコンテナの理解をソースから追っかけてました。
そこではすぐには理解は出来なかったし、ただとりあえずこいつを読めるようになればLaravelはある程度わかるはずだという謎の自信があったので、入念にソースをxdebugなどのツールを駆使して追っかけてた記憶があります。
そこから、他の人の作ったライブラリを見つつ、VoiceTextAPIを1ファイルのクラスにしてLaravelから読めるようにライブラリを作りました。(ここではまだ理解があやふやだったものの、ちゃんと読めたことに嬉しかった記憶があります)
その後、ふとしたタイミングでコンストラクタインジェクションとメソッドインジェクションの意味を知り、サービスコンテナの強み、Laravel自体の強みを理解することが出来ました。

最後

ということで、軽く思っていたことを書いた感じになります。
Laravelの需要は今後も伸びそうな予感がします。ただバージョンアップされていくにつれてどんどん難しくなっているのでパワーで途中まで乗り切って、あとは見えた道を見逃さないように歩いていきましょう。