PHP
Laravel
mvc
フレームワーク

MVCモデルをまとめる


MVCについてまとめる

2018年10月13日時点での自分が理解しているなりのMVCモデルについてまとめてみます。

特に調べずに自分の理解だけを記録するので、間違って解釈しているところもあるかもしれないです。

Laravelについてのことがちょくちょく出てきますが、Laravelを使用していない人はそこらへんは無視してください。

(未来に振り返った時に何か変わるかもしれないしね。)


MVCとは

MVCとは、Model、View、Controllerの頭文字をとってMVCモデルという。

MVCモデルはフレームワークを利用した開発をする際によく用いられる開発手法の1つです。

Model、View、Controllerをデータが行き来します。

スクリーンショット 2018-10-13 18.04.57.png

上にMVCモデルを簡単に表現した図を入れてみました。

ここからは1つ1つ詳しく解説していこうと思います。


Model

ModelはDBとやりとりするクラスです。

具体的にはCRUDです。

LaravelのModelにはDBとやりとりするためのメソッドがあらかじめ用意されており、それらのメソッドを利用してDBとやりとりします。

また、メソッドを自作することも可能です。


Controller

ControllerはModelとViewの橋渡しをする存在です。

ModelからDBにアクセスし、取得したデータをControllerで加工してViewに渡すと行ったことや

ViewからのデータをModelに渡し、DBに保存してもらうなどです。

このかんにValidation(データが正当かどうかを判断する機能)をしたりします。


View

Viewは表示を担当します。

ViewはControllerから渡されたデータをわかりやすく表示したり、ユーザーからのリクエスト(form)をControllerに送ったりします。

Viewはロジック的なことはせず、ロジックは全てController、Modelに任せることがいいでしょう。


なぜ、MVCモデルなどが存在するのか

素のPHPでベタがきすれば確かにwebサイトは動きます。

しかし、PHPファイル1つとMVCモデルのファイル3つでは、エラーが起きた際にどこか原因かわかりやすいです。

MVCモデルは責任の所在を明らかにする他、Controller、Model、Viewのそれぞれの役割を書くだけでいいので、ソースコードが読みやすくなります。

などなどMVCモデルにはまだまだ利点があります。

この利点があるからMVCモデルが多く採用されているのど思います。


まとめ

LaravelはMVCモデルです。

Laravelを使用するためにはMVCモデルを理解しなければいけません。

しかし、そんなに難しいものではありません。

MVCモデルとググってLaravelを触っているうちにきっと理解してくると思います。