#MVCについてまとめる
2018年10月13日時点での自分が理解しているなりのMVCモデルについてまとめてみます。
特に調べずに自分の理解だけを記録するので、間違って解釈しているところもあるかもしれないです。
Laravelについてのことがちょくちょく出てきますが、Laravelを使用していない人はそこらへんは無視してください。
(未来に振り返った時に何か変わるかもしれないしね。)
#MVCとは
MVCとは、Model、View、Controllerの頭文字をとってMVCモデルという。
MVCモデルはフレームワークを利用した開発をする際によく用いられる開発手法の1つです。
Model、View、Controllerをデータが行き来します。
ここからは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を触っているうちにきっと理解してくると思います。