「Laravelが求人に多いから、Laravelから始めていい?」
未経験の方からよく受ける質問です。
答えは 「いいえ。素のPHPを1カ月やってからにしてください」 です。
ただ、この記事で本当に伝えたいのは順番の話ではありません。
順番を守っても止まる人がいるという話です。僕がそうでした。
結論:素のPHPを1カ月 → Laravelを1カ月
1. 素のPHP(約1カ月・80時間)
2. Laravel(約1カ月・80時間)
3. Laravelでポートフォリオ制作(約2カ月)
素のPHPは「深く」ではなく「一通り」でOKです。
目的は、Laravelが裏で何をやっているかを想像できるようにすることです。
なぜLaravelから始めてはいけないのか
Laravelは非常に便利なフレームワークです。数行書くだけでログイン機能ができてしまいます。
しかし、便利さの裏で大量の処理が自動的に走っています。
- URLとファイルの結びつけ(ルーティング)
- フォームから送られた値の受け取り
- データベースへの接続
- SQLの組み立て
- セッションによるログイン状態の保持
素のPHPを知らないままLaravelを始めると、エラーが出たときに「どこで何が起きているか」がまったく想像できません。
ただし、順番を守っても止まります
ここからが本題です。
僕はHTML・CSSで模写サイトを作れるようになって、そのあときちんとPHPに進みました。
順番としては正しいです。それでもそこで数年、足踏みしました。
理由はひとつです。
いまいち、アプリをどう作っていけばいいのかが分からなかったんです。
文法は分かる。フォームの送信もできる。データベースにも保存できる。
なのに「じゃあ、これをどう組み合わせてアプリにするのか」がまったく見えませんでした。
順番の記事はたくさんありますが、ここでつまずく話はあまり書かれていません。なので書いておきます。
詰まっているのは文法ではなく「どこに書けばいいか」
今、僕は未経験の方にプログラミングを教えています。
学習中のS.Tさんが、こう言っていました。
Laravelはどこに何があって、どのファイルがどういう役割で、どういう流れなのかが理解できていない。だから、どこに何を書いたらいいか分からない
これ、当時の僕とまったく同じです。
Laravelはファイルがたくさんあります。
教材のとおりに書けば動きますが、自分で作ろうとした瞬間に「で、これはどのファイルに書くんだ?」で止まります。
なので僕がS.Tさんに最初にやったのは、文法の説明ではありません。
どのファイルがコントローラーで、どのファイルがルートなのかを教えました。
先に地図を渡すイメージです。ここが分かると、教材の読み方が変わります。
最初に覚えるファイルの役割
| 場所 | 役割 | ひとことで言うと |
|---|---|---|
routes/web.php | ルーティング | 「このURLが来たら、この処理へ」の受付 |
app/Http/Controllers/ | コントローラー | 実際の処理を書く場所 |
app/Models/ | モデル | データベースとのやり取り |
resources/views/ | ビュー(Blade) | 画面の見た目 |
この4つだけ先に覚えてください。
「URLを叩く → ルート → コントローラー → モデル → ビュー」という流れを口で説明できるようになると、一気に進みます。
素のPHPで学ぶべき範囲(これだけでOK)
1. 基本文法(1週間)
- 変数、配列、連想配列
- if文、for文、foreach文
- 関数
JavaScriptを先にやっていれば、ほぼ同じ感覚で書けます。
2. フォームの送受信(1週間)
- GET と POST の違い
$_POSTで値を受け取る- 受け取った値を画面に表示する
- 入力値のチェック(バリデーション)
ここでセキュリティの基本にも触れておきます。
- 受け取った値をそのまま表示しない(エスケープする)
- 数値のつもりの値が数値か確認する
3. データベース(2週間)
- MySQLの基本
- SQL:SELECT / INSERT / UPDATE / DELETE
- PDOを使った接続
- プレースホルダを使った安全なSQLの書き方
ここは絶対に飛ばさないでください。
Laravelを使うとSQLをほとんど書かなくなりますが、裏で何のSQLが発行されているか分からないと、不具合もパフォーマンス問題も解決できません。
4. セッション(数日)
- ログイン状態をどうやって保持しているのか
$_SESSIONの基本
素のPHPでやらなくていいこと
- オブジェクト指向の深い理論(クラスの書き方が分かれば十分)
- 素のPHPで大規模なアプリを作ること
- 古い書き方(
mysql_系の関数など)
ゴール:フォームから送信した内容をデータベースに保存し、一覧表示・編集・削除ができる。
Laravelは「1周でわかる」と思わないこと
ここが一番きつい部分なので、先に言っておきます。
僕が伴走したSさんは、HTML・CSSで止まっていた状態から始めて、6カ月でエンジニア転職しました。
ただ、その過程はきれいではありません。
Laravelの教科書を5周するまで、流れも書き方も理解できていませんでした。
最初のうちは意味が分からなすぎて、一緒にやらないと進まない日々でした。
それでも繰り返しているうちに、5周目あたりで急に流れがつかめてきたんです。
そこからは早かったです。
- 自分でどういうコードを書けばいいか見えてきた
- ChatGPTへの質問の仕方まで上手くなった
- エラーで詰まったときの調べ方が身についた
ここで知っておいてほしいのは、1〜4周目は「分かっていない状態」が続くのが普通だということです。
これを知らないと、2周目あたりで「自分には向いていない」と思ってやめます。
向いていないのではなく、まだ回数が足りていないだけです。
Laravelで最初に押さえる範囲
1週目:MVCの流れをつかむ
- ルーティング(web.php)
- コントローラ
- ビュー(Blade)
「URLを叩く → ルーティング → コントローラ → ビュー」
この流れを口で説明できるようになるのが目標です。
2週目:データベース
- マイグレーション(テーブル定義)
- モデルとEloquent
- 一覧・詳細・作成・編集・削除
素のPHPでSQLを書いた経験があると、「あ、これは裏でSELECTしているんだな」と理解しながら進めます。
3週目:認証とバリデーション
- Laravel標準の認証機能でログイン・新規登録
- フォームリクエストによるバリデーション
- ミドルウェアで未ログインを弾く
4週目:小さなアプリを1つ作る
学んだ内容だけで、シンプルなアプリを作ります。
例:メモアプリ、タスク管理、読書記録
ここで作るのは練習用です。ポートフォリオは別で作ります。
詰まりやすいポイントと対処
| 詰まる場所 | よくある原因 | 確認すること |
|---|---|---|
| 画面が真っ白 | ビューのファイル名違い、構文エラー | ログを見る(storage/logs) |
| 404が出る | ルーティングの記述漏れ | php artisan route:list で確認 |
| ログイン後に戻される | ミドルウェアの設定 | どのルートに認証がかかっているか確認 |
| データが保存されない | $fillable の設定漏れ | モデルの $fillable を確認 |
| CSRFトークンエラー | フォームに @csrf がない | Bladeのform内を確認 |
共通のコツ:エラーが出たら、まずログファイルを見ること。
画面のエラーより詳しい情報が書かれています。
よくある質問
Q. 素のPHPを飛ばしてはダメですか?
A. 飛ばすと、エラーが出たときに何も想像できなくなります。1カ月でいいので通してください。
Q. 教科書を何周すればいいですか?
A. 5周を目安にしてください。1〜4周目は分からなくて普通です。そこでやめる人がほとんどです。
Q. 途中で何をすればいいか分からなくなりました。
A. それが普通です。僕はそこで数年止まりました。文法の問題ではなく「全体の流れが見えていない」ことが原因なので、ファイルの役割から確認し直してください。
まとめ
- 順番は「素のPHP1カ月 → Laravel1カ月 → ポートフォリオ2カ月」
- Laravelから始めると、エラーが出たときに何も分からなくなる
- 順番を守っても止まる。僕はそこで数年足踏みした
- 詰まる原因は文法ではなく「どこに書けばいいか分からない」こと
- まずファイルの役割(ルート・コントローラー・モデル・ビュー)を覚える
- 教科書は5周。4周目までは分からなくて当たり前
僕は数年止まりました。Sさんは6カ月で抜けました。
違いは才能ではなく、「今が分からなくて当たり前の時期だ」と言ってくれる人がいたかどうかだけです。
次に読む記事
未経験からエンジニア転職までの6カ月ロードマップを無料で配布しています。LINEから受け取れます。