📖

【Laravel】MVC モデルについて理解してる?

2021/12/28に公開約1,700字

MVC モデルって何さ

完結に言うと、UI をもつアプリケーションを実装するためのデザインパターンで、アプリケーションの役割(DB 情報を持ってくる人、見た目を管理する人、情報を渡したり処理する人)を分けるよーと言ったものである。

上記説明で理解されたと思うが、「色々調べたけどわからない!」という人が、「感覚的に1ミリは理解できた」と思って貰えればこの記事の本懐は遂げたと言える。

MVC って何の略?

まず、MVC とは Model,Controller,View の略称である。
そして、前述した言葉を使うと下記役割に分かれる

Model:DBの情報を持ってきたり、情報を入れる人
View:アプリの見た目を管理する人(HTML,CSS など)
Controller:情報を渡したり処理する人(Model から DB 情報受け取って
 View に流したり、 View で受け取った情報を Model に流したりの中間職の忙しい人)

応用できないし、変な覚え方にはなるが下記のように覚えたら頭に入りやすいかもしれない

  • Model 君
    • 倉庫(DB)番:倉庫から必要な素材を取り出してくれたり、格納してくれたりする
    • View ちゃんのことが好き
  • View ちゃん
    • 貢がれ屋:Model 君や Controller 君からの貢ぎもので着飾る小悪魔系女子
    • 自身も美意識が高く、CSS などで着飾る
  • Controller 君
    • Model 君から買った素材で、いい服やアクセサリーを作るデキる男
    • デートプランも何をするか(処理内容)しっかり決める
    • View ちゃんのことが好き

頭に入りやすいかもしれない(諸説あり)

ただ、これらは一人ではなく、それぞれの動作にそれぞれの人(ファイル)が存在しているため、最初に初めた人はとんでも無い量のファイルと中身を目にすると思うが、少しずつ理解することで頭がパンクせずに理解できるようになる。

下記は、パンクしない程度にもう少し詳しく書いていこうと思う。

Model のちょっと詳しい話

役割

[DB関連処理が主]
- 格納
- データの引き出し
- 他のテーブルから情報を持ってくる(リレーション)

配置される場所

- App/Models/ 配下

作成時のコマンド

php artisan make:model [Model 名]

View のちょっと詳しい話

役割

[画面に関する役割が主]
- Controller からデータを受け取る
- 画面を作る(Blade ファイル)
- Laravel 作成時に CSS,Bootstrap,Vue.js,tailwind などが付いている

配置される場所

- resouces/views/ 配下

Contoller のちょっと詳しい話

役割

- データを Model に送信する
- データを受け取り View へ送信する
- 関数処理
- 認証関連処理(Gate を使用して route に書く処理などもあるが割愛)
- 検索などその他処理全般
- リクエストをどの View に送信するかなどの橋渡し

配置される場所

- app/Http/Controller/ 配下

作成時のコマンド

php artisan make:controller [Controller 名]

総括

本記事では、役割をしっかりとディレクトリやファイルごとに分かれてやってるんだなとざっくり理解してもらうレベルでの説明しかしていないが、少しでもわかる手助けになれたらと思う。

難しい言葉は極力省いたつもりではあるが、それでもわかりにくいなどあればコメントで教えて貰えたら、どこがわかりにくかったなどを追記、編集していこうと思う。

ここまで読んでいただき、ありがとうございました!

Discussion

ログインするとコメントできます