MVCモデルについてきちんと理解しようと思ったので記事にしてみました。
初心者なため認識違いがあった場合などは是非ご指摘下さい。
#MVCとは
- ・ Model
- DB関連の処理を担当
- ・ View
- 画面表示(HTML)を担当
- ・ Controller
- リクエスト受付&レスポンス返却
このようにプログラムの担当をMVCの3つに分割する考え方のことをMVCモデルと呼びます。
まずはユーザーが何かしらのURLをリクエストします。するとフレームワークではルーターというところがURLのリクエストを受け付けます。
ルーターというのは受け付けたURLをどのコントローラーのアクションに割り当てをする割り当て処理を行う部分です。
次にルーターによってアクションが呼び出されます。コントローラーではこのリクエストを受け取ってitem/1のアイテム情報をデータベースに問い合わせます。
データベースに問い合わせをするときはコントローラーはモデルに問い合わせをします。
モデルはデータベースとやりとりを行ってその結果をコントローラーに返却します。このようにモデルというのはデータベースとやりとりを担当する部分になります。
次にモデルからデータを受け取ったコントローラーはデータをビューにわたします。
そしてビューではこの情報を使って動的に返却するためのHtmlを生成します。生成されたコントローラーはレスポンスとしてUserに返します。
このようにMVCモデルではController・Model・Viewの3つの役割があります。
さらにコントローラーを呼び出すためのrouterと言われるものも存在します。