【CakePHP】1人前のケーキ職人になるまで

パティシエじゃないよエンジニアだよ

【CakePHP】MVCアーキテクチャとは?

さてさて、今回は前回の続きでMVCアーキテクチャについて勉強していきます。

MVCの概念

MVCとはModel・View・Controllerの略で、処理を3つの役割に分割して実装する手法です。

Model

アプリケーションデータ、ビジネスルール、ロジック、関数など。ここでは、処理のメインロジックやデータアクセスを担当します。

View

グラフや図などの任意の情報表現、処理結果として画面表示(HTML出力)を担当します。

Controller

入力を受け取りmodelとviewへの命令に変換する。クライアントよりのリクエストを直接受け取って処理を行う、一番前面となる部分で、文字通りModelやViewを「制御」します。

*イメージ
f:id:nagisa-ito:20171023151506p:plain

Controllerは入力された情報を基にModelに命令し、Modelはデータと連携して処理を行い、処理結果をControllerに返します。
Controllerはその返ってきた処理結果データをViewに渡し、Viewはデータを基にHTML出力処理を行います。
ControllerはModelとViewの仲介役を果たします。

メリット

具体的にどうすればいいの、ということになりますが例えばPHPでは
PHP部分 : Model, Controller
HTML部分 : View

をむやみに埋め込みをせず、分けて書くことにあります。 短いコードだとあまり実感できませんが、大規模なものになってくると
– ビューとコントローラを分けることでデザイナとプログラマの作業分担をしやすくなる。
– コントローラとモデルを分けることで同じ処理を行う時にコピーペーストを行う必要がなくなる。
– さらにモデルをドメイン固有モデルと共通モデルとに分ける事で、他のシステムで使い回しても影響がない部品(=共通モデル)が明確になり、再利用性が高まる。

などのメリットがあります。


<参考にしたサイト>

www.objective-php.net

www.ecoop.net