去年からLaravelをまなびだして1年たちました。LaravelはPHPで人気のフレームワークです。PHPのほかのフレームワークと比べてもダントツ。

image

かれこれ、PHPで開発をしてきて20年近くが経とうとしています。しかしながらLaravelに出会うまでは、フレームワークを使ったことがありませんでした。

フレームワークの学習コストと、自分の理解が及ばないブラックボックス化されているコードを使うのが不安だったからです。しかし、いまではフレームワークに慣れ、その良さを知ってしまった今では、使わないという選択肢は考えられません。

フレームワークのいいところは、実際に数多くの現場で使われてフィードバックを受け、改善が続いているということです。これはオレオレフレームワークと比べるまでもなく安全で効率的です。

まず意識しなくてもセキュリティが考慮された設計になっているし、やろうと思ったことは機能として準備されています。もともとPHPは関数が豊富でその組み合わせでさまざまなことができますが、フレームワークはより実践で使われる機能があらかじめ組込まれています。

例えばLaravelならユーザー登録・ログイン認証までコマンドを打つだけで、そのセットを組み込むことができます。フォームのバリデーションやHTMLメールの送信などもあります。このような機能を使えば、自分でゼロからつくより安全で保守しやすいプログラミングができるというわけです。

実際に僕がつくっているWEBサービス「MENTA」や「Voyage」もLaravelでつくられています。正直なところ、そのクセや挙動を理解するのに半年くらいは時間がかかりました。けれど、今ではLaravelの開発は効率的になり、今もなお開発スピードは上がってきています。

この記事では、フレームワークのメリットなどは他の記事にまかせるとして、いまゼロから学んでいくならどういう順序がいいのか、学んでいくためのコツみたいなものをまとめてみます。(前提条件としてPHPを理解しているものとしています)

1.Laravel本で全体を理解する

初期の頃に買いましたが、内容が軽いのですらすらと読みやすいです。まずはこの本をさらっと全体を通読しましょう。どんなことができるのかをザッと知るのにちょうどいいボリュームです。網羅しきれてない部分もありますが、どのようなフレームワークなのかを理解するのに役立ちます。

image

2.ミニサービスをつくってみる

本で知っているのとコードが書けるのはレベルが全く違います。まず本で知った知識を何度も反復して書いて動かしていくことで、深いレベルで使える技術になります。

僕は最初のころ、練習材料としてmottonというサービスをつくりました。ミニサービスをつくるのは実践的ですし、そのまま作品にもなるのでおすすめです。作る過程で学べることが多いです。

image

mottonではログイン、投稿、編集、削除など一通りの基本機能を実際につくって試せました。つくるときにはつまづきが多いので(この機能を作るときにはどうすればいい?みたいな)本やドキュメント、Stackoverflowなどを調べていくことが必要です。

この段階ではソースをきれいに書くとか、そこまでは意識せず動くものができればOKという気持ちでとにかくコードを書いて動かすことに徹しましょう。(実際、いろんな作り方があります)

ここでどうしてもつまづく場合はMENTAでメンターをさがしてサポートについてもらえると安心です。学びも加速します。

3.ドキュメントを読み込む

Laravelは日本語ドキュメントが豊富です。読みやすく、詳しくまとめられてます。全体を読んでみると、いまだにいろんな発見があって楽しいですが、ふだんは機能を実装するときにメソッドなどを調べて理解していました。

image

外出しているときとかでも時間がある時にスマホでドキュメントを読むのも新しい発見があって楽しいです。ゴリゴリ無理やり実装するのではなく、最初から用意されているパターンをいかに知っているかどうかがメンテナブルなコードにつながっていきます。

僕は皿洗いのような手を動かせない時にyoutubeを見たりしていました。

image
こういうのとか、さがせばたくさんでてきます。

4.慣れてきたら次のLaravel本を読む

こちらはある程度Laravelを理解してきてから読むことをおすすめします。フレームワークの説明にとどまらず、リポジトリパターンだとか、概念の説明など、実際の現場で使われる内容にまで触れられているので勉強になります。

image

あとはコードをひたすら書いてつくっていくことでレベルを上げていきましょう。作って動かしていくうちに、こんな書き方の方がわかりやすいとかメンテしやすいとかわかってきます。僕の場合は一緒につくってくれる仲間もいましたので、コードレビューしてもらったりしてレベルが上がりました。

まとめ

手を動かしながらセットで本やドキュメントを読む方が効率がいいです。まずかんたんなプログラムを自分でつくって運用してみるのが早道です。Laravelは学べば学ぶほど面白くなってくる奥深いフレームワークだと思います。