🌳
CakePHP 5 : MVC モデルって何?
1. はじめに
今回は、MVC モデルについて紹介します。
CakePHP で開発を進めていく上で MVC モデルの知識は必須なのです。ところが、MVC モデルの説明を読んでも難しい用語が並べてあって、なかなか理解できないんですよね…
だからこそ丁寧に、なるべくわかりやすく説明したいと思います!
2. MVC モデルとは
ソフトウェアデザインパターンの一つで、Model (モデル)
、 View (ビュー)
、 Controller (コントローラー)
の3つの要素から成り立っています。それぞれの頭文字を取って「MVC」です。
CakePHP だけでなく、多くのフレームワークで採用されています。
3. それぞれの役割
一般的な MVC の役割について簡単に説明します。
3-1. モデル
モデルの役割は、データベースとのやり取りをすることです。
データの取得をしたり、登録・更新・削除などを行います。
ざっくり言うと「DB 担当」みたいな感じです。
3-2. ビュー
ビューは、データを画面に表示する処理を行います。
「画面 (見た目) 担当」ですね。
3-3. コントローラー
モデルとビューの間で処理の調整や命令を行うのが、コントローラーです。
たとえばモデルを使ってデータの取得や登録をしたり、ビューにデータを渡して出力内容を切り替えたりします。
こちらは「司令塔」のような役割です。
4. CakePHP における MVC の特徴
CakePHP では MVC が用途別にさらに細分化されていて、どこに何を書くのかが決められています。そのため保守性や可読性が向上する等のメリットがあります。
-
M (Model) は「テーブル」と「エンティティ」に分かれています。
- テーブルとは、データベース内の情報を格納するための要素です。
- エンティティは、テーブルの各レコードに対応するオブジェクトこのとです。
-
V (View) は「ビュー」「テンプレート」「ヘルパー」で構成されています。
- ビューはデータ表示に関する処理を行い、テンプレートの選択やデータの組み立てなどの役割を担います。
- テンプレートはページのレイアウトを定義し、表示するコンテンツを生成します。
- ヘルパーは、フォーム要素やリンクなどを作成する時に助けになる機能です。
-
C (Controller) は「コントローラー」と「コンポーネント」があります。
- コントローラーでは、特定の URL に対応するアクションが実行されます。たとえば /users/index などの URL にアクセスすると、index アクションが呼び出され、対応するページが表示されます。
- コンポーネントは、コントローラー内で共通で使えるメソッドや機能のセットです。同じコードを繰り返し書かずに済むなどのメリットがあります。
Discussion