Webアプリの仕組みとMVC — はじめての全体像
「ブラウザで開くと画面が出る」仕組みと、Laravelの土台になっているMVCという考え方を、専門知識ゼロからやさしく解説します。
Laravel を学び始める前に、「そもそも Webアプリって、どうやって動いているの?」というところからやさしく説明します。ここがわかると、これから出てくる用語がぐっと理解しやすくなります。専門知識はまったく不要です。 ゆっくり読み進めてください。
ブラウザで「開く」と何が起きているのか
あなたが普段、スマホやパソコンで Webサイトを見るとき、こんなことが起きています。
- あなたが URL を開く(=「このページを見せて」とお願いする)
- そのお願いが、インターネットを通じて サーバー(Webサイトの中身が置いてある、どこかのコンピュータ)に届く
- サーバーが「はい、これがそのページです」と中身を返す
- ブラウザが、返ってきた中身を画面に表示する
この「見せて」というお願いを リクエスト(request)、サーバーが返す中身を レスポンス(response) と呼びます。
ひとことで言うと、Webアプリとは「リクエストを受け取って、レスポンスを返す」プログラムです。Laravel は、このやりとりをきれいに作るための道具です。
そのままだと「ごちゃ混ぜ」になる
サーバーの中では、1つのリクエストに対していろいろな作業をします。たとえば「ユーザー一覧ページを見せて」というお願いなら、
- データベースからユーザーのデータを取り出す
- そのデータを見やすいHTMLの画面に組み立てる
- 「どのお願いのとき、どの作業をするか」を振り分ける
これらを1つのファイルに全部書いてしまうと、すぐにごちゃ混ぜになって、どこに何が書いてあるか分からなくなります。
MVC = 役割で分ける考え方
そこで登場するのが MVC(エムブイシー) という考え方です。MVC は、プログラムを 役割ごとに3つに分けて整理するための設計の型です。それぞれの頭文字をとって MVC と呼びます。
| 記号 | 名前 | 役割 | ひとことで言うと |
|---|---|---|---|
| M | Model(モデル) | データの担当 | データベースとのやりとり |
| V | View(ビュー) | 見た目の担当 | 画面(HTML)を作る |
| C | Controller(コントローラ) | 進行役 | お願いを受けて全体を指示する |
レストランでたとえると
イメージしにくければ、レストランを思い浮かべてください。
- Controller(コントローラ)= ホール係。お客さん(リクエスト)の注文を受け、厨房に指示を出し、できた料理をお客さんに届けます。全体の進行役です。
- Model(モデル)= 厨房・食材庫。実際の食材(データ)を管理し、料理を作ります。データの出し入れはここの担当です。
- View(ビュー)= 盛り付け・お皿。料理をお客さんに見える形に整えます。見た目の担当です。
お客さんが注文すると、ホール係(C)が厨房(M)に「これ作って」と頼み、できあがったものをお皿(V)にきれいに盛り付けて届ける——この流れが MVC です。役割がはっきり分かれているので、どこに何を書けばいいかが明確になります。
Laravelでの流れ
Laravel では、リクエストが届いてからレスポンスを返すまで、おおよそ次のように進みます。
ブラウザ
│ ① リクエスト(URLを開く)
▼
ルート(routes/web.php) … どのお願いを、誰に渡すか振り分ける
│ ②
▼
Controller(コントローラ) … 進行役。必要ならモデルにデータを頼む
│ ③
▼
Model(Eloquent) … データベースからデータを取り出す
│ ④ データを返す
▼
View(Blade) … データを画面(HTML)に組み立てる
│ ⑤ レスポンス
▼
ブラウザに表示
最初の「ルート」は、MVC の手前にある受付の振り分け係だと思ってください。「/users というお願いが来たら、このコントローラに渡す」と決める役割です。
まだ全部覚えなくて大丈夫
ここで出てきた ルート → コントローラ → モデル → ビュー は、このカリキュラムでこれから1つずつ、実際に手を動かしながら学んでいきます。今は、
「Laravel は、役割を分けて(MVCで)リクエストに応える仕組みなんだな」
と、ぼんやりイメージできていれば十分です。
まとめ
- Webアプリは「リクエストを受け取り、レスポンスを返す」プログラム。
- MVC は、プログラムを役割で3つに分ける整理術。M=データ、V=見た目、C=進行役。
- Laravel の流れは ルート → コントローラ → モデル → ビュー。
- 全部を今覚える必要はなく、これから1つずつ学んでいけば大丈夫。
- 次の単元では、いよいよ開発環境を構築して、実際に Laravel を動かします。