###はじめに
Laravelを学習中ですが、先日企業の面接で「MVCモデルの説明」を求められ、
うまく答えられなかったので記事にしました。
###MVCモデルとは
- 「Model-View-Controller」の略
- MVCモデルのような処理を役割ごとに別の場所に書くことで、誰でも読みやすいコードになる
- 例えば、ユーザー登録処理だけでも以下のような処理が必要になる
- 入力画面の表示
- 入力された値の受け取り、確認
- DBへの登録
- 登録完了画面
###Model(モデル)
**ビジネスロジックを担当する部分。**ビジネスロジックとは、例えば申し込みフォームの内容をDBに登録させる処理。
「処理した結果をDBへ反映させること」くらいの理解でOK。
データ処理全般を担当し、データベースに関する処理全般を扱う。また、DBからデータを取得して、Controllerへ送る部分でもある。
###View(ビュー)
Webブラウザなどに表示するHTMLを動的に生成する部分。
HTMLを動的に生成するとは、データベースから取得したデータをHTMLに埋め込んでアクセスするたびに、異なる HTML を生成することなど。
動的なサイトとして、わかりやすいのにTwitterがある。今、アクセスした時と、10分後にアクセスした時とではタイムラインの新着順が変わっており常にリアルタイムで変動する。それは、アクセスするたびにデータベースから最新の記事を習得して最新のタイムラインをトップページに表示するという処理をしているから。
Viewはこういった機能をもつ。
###Controller(コントローラー)
View(ビュー)とModel(モデル)を操作する部分。
Viewからのリクエストを受け取り、Modelへ処理の命令を出す。また、Modelから処理の結果を受け取り、レスポンスとしてViewに返したりする。ViewとModelの仲介という理解でOK。
簡単ではありますが、以上です!