【Cakephp3.6】MVC構成

はじめに

  1. MVCとは
  2. CakephpのMVC構成
  3. まとめ

サイト制作してます、Kentaです!!

今回は実際にサイト構築をする上で欠かせない、MVCの概念について書いていこうと思います!

MVCの他にも構成の概念は多数存在するので、今回はその中の一つを紹介していく形になります。

 

MVCとは

フレームワークを使用するにあたって、必ず必要な知識になりますが、

簡単に説明すると、

役割ごとにディレクトリを構成していく

という概念になります。

複雑な説明もできますが、はじめはこのくらいの理解のほうが混乱しませんね。

 

MVCの略ってなんだ?ってなるとおもうので、ここで説明しておきます。

これ、結構重要なので最後まで覚えておいてください!

  • M(モデル)                       データベースとのやり取りをするところ
  • C(コントローラー)         MとVの橋渡し(ここのコードだけみれば全体がわかる)
  • V(ビュー)                       実際に出力される内容を書くところ

例外もあるかもしれませんが、大抵はこの考え方で良いかと思います。

図解しますと、

こんな感じ。

なんでModelとView繋げないんだよ!って思うかもしれません。笑

繋げられないことはないですが、概念的に繋げる理由がないってところですね。

 

実際のコードが読まれる流れを書いておくと、

ex1)ページがブラウザで開かれる → Controller → Model → DataBase

→ Model → Controller → View

ex2)ページで何か動作が起きた → View → Controller →※ここからは上の流れと同じ

 

この流れが一般的かと思います。

今はざっくりとおぼえておくと良いでしょう。

 

CakephpのMVC構成

CakeではどんなMVC構成なのかを細かく解説していこうと思います。

すべてを説明するとキリがないので、使う主要なもののみ説明します!

Model

Table内にHogesTable.phpってファイルがあるなら、

大抵はEntityにHoge.phpがあると思っていて構いません。

もちろん、entityの定義などが必要ないのであればentityはなくてオッケー!

  • Behavior       共通して使用するコードを書くところ
  • Entity            各レコードに対しての定義やメソッドを追加できるところ
  • Table            実際にデータベースとの接続をするところ

 

Controller

ここがTableでデータベースから取得されたデータをメソッドとして呼ぶことで、

全体像がどうなっているのかをすぐに把握できるのが特徴です。

ただし、気をつけないとコードが長くなりやすいので注意!

※テーブルで書く内容はControllerで書いても動かせるため

  • Component                  共通して使用するコードを書くところ
  • AppController.php       Controller全体に反映したいコードが書いてある(追加も可)

 

View

ここが紛らわしいかもしれません。

CakeでのViewは出力する直接のものはなく、Templateに置きます!

  • Helper                    共通して使用するコードを書くところ
  • AppView.php         View全体に反映したいコードが書いてある(追加も可)

 

Template

こちらが実際にブラウザで出力される内容です。

  • Element            ボディーの共通して使用するコードを書くところ
  • Email                メール送信するときの本文を書くところ
  • Error                 エラー(ex:通信が切れた)を知らせるページを書くところ
  • Layout              ヘッダー・フッターなどの共通して使用するコードを書くところ

 

よく見てみるとわかると思いますが、

それぞれに役割がしっかり振り分けられているのがわかりますね!

それに共通部分を使用して、コードをより読みやすくできる配慮があったり。

Cakeで使用するMVCといったらこれらのファイルになるので、しっかり覚えましょう!

 

まとめ

フレームワークにはオブジェクト指向なるものが必ず付きまといます。

このオブジェクト指向の良さを理解するためには、

まず、MVCの構成を理解するところから進めて行きましょう!!

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です