【初心者】Laravelの学習が難しい原因と効率いい学習法|前提知識のPHPで覚えることリスト

Laravel

モダンなwebフレームワークのLaravelを学んでエンジニアとして働きたい・稼ぎたい。

それでLaravelを学習しようと思ったら、全然理解できなく挫折しそうになることありますよね。

スムーズにLaravelを理解するには前提知識が必要です。そしてそれなりの学習時間も必要です。

今回はそのLaravelを難しくしている原因と対策をまとめました。

Laravelを難しいと感じる理由と対策

Laravelを難しく感じる理由は以下です。

こういうプログラミング初心者が多いな、と感じる順番に並べてました。

これからPHPを学ぶ人と、PHPを学んで次のステップを探している人、他のフレームワークとの違いで苦しんでいる人で原因と対策が変わってきます。

  1. PHPとLaravelの違いが分からない
  2. MVCの考え方を理解していない
  3. 環境構築(composer)が難しい
  4. 規約が少なく自由すぎる

 

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

 

おすすめの動画教材。本で学ぶより10倍速くらいでPHPを理解できます。
値段が高めですがスクールより10分の1以下でです。

早くプログラムを覚えて仕事ができればすぐ回収できる金額です。

最新のPHPがゼロから丁寧に学べる動画教材|demy

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を始める前にまずはざっと理解しておきましょう。こちらのサイトが分かりやすいと思います。

MVCモデルとは!概念やそのメリットをわかりやすく解説!

 

環境構築・composerが難しい

素のPHPではなくLaravelのようなフレームワークを使うときに出てくる問題が環境構築。

いままでMANPやXAMNPを使って開発環境を作っていた人には難しいですよね。

素のPHPならPHPをインストールしてMySQLをインストールしてたら使えたものが、Laravelだとインストールが難しくなっています。その原因は主にComposerだと思います。

まずはComposerをきちんと理解しましょう。ComposerはPHPのパッケージ管理ツールです。

パッケージ管理というと大げさですが大したことありません。

世の中の誰か他の人が作ったPHPのプログラムをパッケージとしてcomposerに登録していて、それを僕たちも便利に使える、という意味なだけです。

Laravelもcomposerに登録されたプログラムの一つなのです。

だからまず、composerをインストールして、composerを使ってlaravelをダウンロードしてくる、と理解してください。

あとはブログよりも公式サイトをみてインストールすればできるはずです。

sailというものが紹介されていますが、dockerという別なツールの理解が必須になるので使わないほうがよいと思います。

Laravel8のインストール方法|公式

 

規約が少なく自由すぎる

Laravelはディレクトリを自由に作れるし、自由に作ったディレクトリのファイルを読み込むのも簡単です。

好きに作れる反面、CakePHPのようなルールがガチガチに決まっているフレームワークを覚えた人がLaravelを覚えると難しく感じる事があるみたいです。

これはもう数稽古です。

たくさんコードを書いて、Laravelってこういうもんだと理解するしかありません。

 

Laravelの学習時間は体感で100時間・15日くらい

ただしこれは素のPHPを学習済み、MVCを理解していることが前提の時間です。

2週間くらい必死にやればLaravelは理解できると思います。

公式のチュートリアルが充実してないので、教材は使ったほうがいいと思います。

ブログに書いてある入門の内容とかだと割と実務レベルのコードとは全然違ったりしてダメなんですよね。

書籍なら有名ですがこれがよいです。

動画だとこの2つがいいです。

PHPをこれから学習する人はLaravelの学習時間は500時間、半年はかかる

まだPHPを知らない人はLaravelの学習まで含めるとトータルで半年は覚悟してください。

プログラミングスクールみたいなところにいけば話しは別ですが、どうしたってこれくらいはかかります。

 

PHPやLaravelに限らずプログラミングを習得するにはそれ相応の時間が必要です。

諦めずにコツコツがんばりましょう。

最後にま今回おすすめした学習時間を短期間にできる教材をまとめておきます。