PHP言語のフレームワーク「Laravel」を勉強してみたら難しくて挫折しそうになることありますよね。
スムーズにLaravelを理解するには前提となる知識がいくつか必要です。
その知識ゼロでいきなりLaravelをやると学習の難易度が上がります。
この記事では以下をまとめたのでLaravelの学習を効率化できます?
- Laravelを難しくしている原因
- 知っておくべき前提知識
- 効率のいい学習方法
Laravelを難しいと感じる理由と対策
Laravelを難しく感じる理由は以下です。
ひと言でLaravelを学ぶことが難しく感じている、といっても原因が色々あります。
これからPHPを学ぶ人と、PHPを学んで次のステップを探している人、他のフレームワークとの違いで苦しんでいる人で原因と対策が変わってきます。
- PHPとLaravelの違いが分からない
- MVCの考え方を理解していない
- 環境構築(composer)が難しい
- 規約が少なく自由すぎる
あなたがどれに当てはまるかチェックしてください!
PHPとLaravelの違いが分からない
あなたがPHPを学ばずに、最初からLaravelを学ぼうしているならPHPとLaravelの違いを理解していないから学習がうまくいっていないです。
Laravelを難しいと感じるあなたはフレームワークとしてのLaravelと素のPHPの違いを理解できていないのだと思います。
Laravelを覚えようとする前にフレームワークを使わない素のPHPは習得済みですか?
PHPとLaravelの違いは、言語とフレームワークの違いです。
Laravelより先にPHPを学習しておかないと、Laravelの入門書などに出てくるプログラムがPHPの世界のお話しなのか、それともLaravelの世界のお話しなのかが理解できません。
そするとLaravelって難しいよね、と感じます。
これは算数でいえばまだ掛け算ができない段階で、四角形の面積の計算を勉強するようなものです。四角形の面積を理解するには掛け算が必須ですよね。前提となる知識を学習してからLaravelに取り掛かりましょう。
ログイン機能だけでいっても、Laravelが用意しているのでコマンドを叩けば意識しなくても数分で作れるものですが素のPHPで作ると以下のようにかなりのプログラムを書かなくてはいけません。
- HTMLのフォーム
- POSTパラメータのバリデーション
- セッション管理
- データベースのセレクトやインサート
これらをゼロから作れる前提知識があってこそ、Laravelを使って効率的にプログラミングをしていけるようになるのです。
Laravelを始める前に覚えること|PHPの学習リスト
Laravelを理解するためにはLaravelを使うことなく、素のPHPで以下を覚えてからLaravelを始めてください。
目安としては会員ログインできる掲示板かECサイトをゼロから素のPHPで作れるようになればOKです。
そうでないといきなりLaravelを習得しようとしても理解ができません。
具体的には最低でも以下を理解してからLaravelを始めましょう。逆にいえば以下のリストを見て自分が知らないものがあればまだLaravelを始めるのは早いです。
- HTML、CSS
- PHPの変数と配列
- for, foreach, if, return
- 関数、Class、Classの継承、Trait
- try catch、exception
- namespace
- GET、POSTでのリクエストの違いを理解
- GET、POSTのパラメータをPHPで値の受け取る
- Cookie管理、セッション管理およびCookieとセッションの違いの理解
- PHPからのデータベース接続とPDO
- SQLでデータをSELECT、UPDATE、INSERT、DELETE
- SQLインジェクション
PHPの入門におすすめの教材
書籍で学ぶならこちら。最新のPHPに対応していて評価も高いです。
ゆっくり学びたい人には安価でこちらがよいと思います。
詳細!PHP 8+MySQL 入門ノート XAMPP+MAMP対応|amazon
おすすめの動画教材。
本で学ぶより倍速でPHPを理解できます。
プログラミングスクールと比べても値段は10分の1以下です。
前提知識となるMVCの考え方が分からない|知らない
次にLaravelが難しいと感じる理由はMVCの考え方を知らないことです。
※LaravelはMVCフレームワーク
独学で素のPHPを学習するだけだとこのMVCという考え方に触れていなくて、難しく感じる方も多いみたいです。
MVCとは、プログラムを以下の3つに分割して考えるプログラムの組み方です。これはPHPに限らずRubyやJavaでも共通する考え方です。
- M・・・Model(モデル)
- V・・・View(ビュー)
- C・・・Controller(コントローラ)
あなたはPHPを学習したときにPHPファイルのなかに1つのファイルにHtmlタグを書いたり、データベースにinsertするところ書いたりとまとめて書きませんでしたか?
MVCの考え方は、データベースに関するものはモデルファイルに、Htmlの見た目に関する部分はビューファイルに、モデルから取得してビューにデータを渡す橋渡し役としてコントローラに責務を分割しようという考え方です。
Laravelを始める前にまずはざっと理解しておきましょう。こちらのサイトが分かりやすいと思います。
環境構築・composerが難しい
素のPHPではなくLaravelのようなフレームワークを使うときに出てくる問題が環境構築。
いままでMANPやXAMNPを使って開発環境を作っていた人には難しいですよね。
素のPHPならPHPをインストールしてMySQLをインストールしてたら使えたものが、Laravelだとインストールが難しくなっています。その原因は主にComposerだと思います。
まずはComposerをきちんと理解しましょう。ComposerはPHPのパッケージ管理ツールです。
パッケージ管理というと大げさですが大したことありません。
世の中の誰か他の人が作ったPHPのプログラムをパッケージとしてcomposerに登録していて、それを僕たちも便利に使える、という意味なだけです。
Laravelもcomposerに登録されたプログラムの一つなのです。
だからまず、composerをインストールして、composerを使ってlaravelをダウンロードしてくる、と理解してください。
あとはブログよりも公式サイトをみてインストールすればできるはずです。
sailというものが紹介されていますが、dockerという別なツールの理解が必須になるので使わないほうがよいと思います。
規約が少なく自由すぎる
Laravelはディレクトリを自由に作れるし、自由に作ったディレクトリのファイルを読み込むのも簡単です。
好きに作れる反面、CakePHPのようなルールがガチガチに決まっているフレームワークを覚えた人がLaravelを覚えると難しく感じる事があるみたいです。
これはもう数稽古です。
たくさんコードを書いて、Laravelってこういうもんだと理解するしかありません。
Laravelの学習時間は体感で100時間・15日くらい
ただしこれは素のPHPを学習済み、MVCを理解していることが前提の時間です。
2週間くらい必死にやればLaravelは理解できると思います。
公式のチュートリアルが充実してないので、教材は使ったほうがいいと思います。
ブログに書いてある入門の内容とかだと割と実務レベルのコードとは全然違ったりしてダメなんですよね。
書籍なら有名ですがこれがよいです。
動画だとこの2つがいいです。
Laravelで中級エンジニアになるための動画教材
PHPをこれから学習する人はLaravelの学習時間は500時間、半年はかかる
まだPHPを知らない人はLaravelの学習まで含めるとトータルで半年は覚悟してください。
プログラミングスクールにいけば短期間で習得でもできますが、独学だとこれくらいはかかります。
PHPやLaravelに限らずプログラミングを習得するにはそれ相応の時間が必要です。
諦めずにコツコツがんばりましょう。
最後にま今回おすすめした学習時間を短期間にできる教材をまとめておきます。
- 詳細!PHP 8+MySQL 入門ノート XAMPP+MAMP対応|amazon
- 最新のPHPがゼロから丁寧に学べる動画教材|demy
- laravelとvue.jsで実務レベルの実践的な動画
- Laravelでマルチログインの本格ECサイトの作り方