🌳

CakePHP 5 : MVC モデルって何?

2023/10/30に公開

1. はじめに

今回は、MVC モデルについて紹介します。
CakePHP で開発を進めていく上で MVC モデルの知識は必須なのです。ところが、MVC モデルの説明を読んでも難しい用語が並べてあって、なかなか理解できないんですよね…
だからこそ丁寧に、なるべくわかりやすく説明したいと思います!

2. MVC モデルとは

ソフトウェアデザインパターンの一つで、Model (モデル)View (ビュー)Controller (コントローラー) の3つの要素から成り立っています。それぞれの頭文字を取って「MVC」です。
CakePHP だけでなく、多くのフレームワークで採用されています。
https://book.cakephp.org/2/ja/cakephp-overview/understanding-model-view-controller.html

3. それぞれの役割

一般的な MVC の役割について簡単に説明します。

3-1. モデル

モデルの役割は、データベースとのやり取りをすることです。
データの取得をしたり、登録・更新・削除などを行います。
ざっくり言うと「DB 担当」みたいな感じです。
https://book.cakephp.org/5/ja/orm.html

3-2. ビュー

ビューは、データを画面に表示する処理を行います。
「画面 (見た目) 担当」ですね。
https://book.cakephp.org/5/ja/views.html

3-3. コントローラー

モデルとビューの間で処理の調整や命令を行うのが、コントローラーです。
たとえばモデルを使ってデータの取得や登録をしたり、ビューにデータを渡して出力内容を切り替えたりします。
こちらは「司令塔」のような役割です。
https://book.cakephp.org/5/ja/controllers.html

4. CakePHP における MVC の特徴

CakePHP では MVC が用途別にさらに細分化されていて、どこに何を書くのかが決められています。そのため保守性や可読性が向上する等のメリットがあります。

  • M (Model) は「テーブル」と「エンティティ」に分かれています。

    • テーブルとは、データベース内の情報を格納するための要素です。
    • エンティティは、テーブルの各レコードに対応するオブジェクトこのとです。
  • V (View) は「ビュー」「テンプレート」「ヘルパー」で構成されています。

    • ビューはデータ表示に関する処理を行い、テンプレートの選択やデータの組み立てなどの役割を担います。
    • テンプレートはページのレイアウトを定義し、表示するコンテンツを生成します。
    • ヘルパーは、フォーム要素やリンクなどを作成する時に助けになる機能です。
  • C (Controller) は「コントローラー」と「コンポーネント」があります。

    • コントローラーでは、特定の URL に対応するアクションが実行されます。たとえば /users/index などの URL にアクセスすると、index アクションが呼び出され、対応するページが表示されます。
    • コンポーネントは、コントローラー内で共通で使えるメソッドや機能のセットです。同じコードを繰り返し書かずに済むなどのメリットがあります。

https://book.cakephp.org/3/ja/orm/table-objects.html
https://book.cakephp.org/3/ja/orm/entities.html
https://book.cakephp.org/5/ja/views/helpers.html
https://book.cakephp.org/5/ja/controllers/components.html#

Discussion