はじめに
- MVCとは
- CakephpのMVC構成
- まとめ
サイト制作してます、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の構成を理解するところから進めて行きましょう!!
コメントを残す