L

Webアプリの仕組みとMVC — はじめての全体像

「ブラウザで開くと画面が出る」仕組みと、Laravelの土台になっているMVCという考え方を、専門知識ゼロからやさしく解説します。

広告枠(記事上)— 本番では AdSense 広告が表示されます

Laravel を学び始める前に、「そもそも Webアプリって、どうやって動いているの?」というところからやさしく説明します。ここがわかると、これから出てくる用語がぐっと理解しやすくなります。専門知識はまったく不要です。 ゆっくり読み進めてください。

ブラウザで「開く」と何が起きているのか

あなたが普段、スマホやパソコンで Webサイトを見るとき、こんなことが起きています。

  1. あなたが URL を開く(=「このページを見せて」とお願いする)
  2. そのお願いが、インターネットを通じて サーバー(Webサイトの中身が置いてある、どこかのコンピュータ)に届く
  3. サーバーが「はい、これがそのページです」と中身を返す
  4. ブラウザが、返ってきた中身を画面に表示する

この「見せて」というお願いリクエスト(request)、サーバーが返す中身レスポンス(response) と呼びます。

ひとことで言うと、Webアプリとは「リクエストを受け取って、レスポンスを返す」プログラムです。Laravel は、このやりとりをきれいに作るための道具です。

そのままだと「ごちゃ混ぜ」になる

サーバーの中では、1つのリクエストに対していろいろな作業をします。たとえば「ユーザー一覧ページを見せて」というお願いなら、

  • データベースからユーザーのデータを取り出す
  • そのデータを見やすいHTMLの画面に組み立てる
  • 「どのお願いのとき、どの作業をするか」を振り分ける

これらを1つのファイルに全部書いてしまうと、すぐにごちゃ混ぜになって、どこに何が書いてあるか分からなくなります。

MVC = 役割で分ける考え方

そこで登場するのが MVC(エムブイシー) という考え方です。MVC は、プログラムを 役割ごとに3つに分けて整理するための設計の型です。それぞれの頭文字をとって MVC と呼びます。

記号名前役割ひとことで言うと
MModel(モデル)データの担当データベースとのやりとり
VView(ビュー)見た目の担当画面(HTML)を作る
CController(コントローラ)進行役お願いを受けて全体を指示する

レストランでたとえると

イメージしにくければ、レストランを思い浮かべてください。

  • 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 を動かします。
広告枠(記事下)— 本番では AdSense 広告が表示されます