備忘録

webの備忘録のために

CakePHP3 モデルその1

今回からはしばらくCakePHPのモデルについてご説明。

CakePHPのモデルは2つのクラスの組み合わせとないっている。 「Table」と「Entity」。

CakePHPのモデルとはこの2つのクラスを使ってDBを操作していく。
CakePHPのモデルとは、テーブルクラスとエンティティクラスの組み合わせを中心に構成される。

「テーブル」クラス:DBのテーブルに対応するクラス。これによりDBのテーブルにアクセスする手段を手に入れれる。
「エンティティ」クラス:取り出したデータに対応するクラス。データの具体的な値を管理。

簡単な掲示板のようなシステムを想定し、テーブルを作成し、必要に応じてレコードを取り出したり、追加削除してみる。

その為のサンプルを作成。

テーブルに用意する項目 ID:識別する数字
NAME:投稿者の名前
TITLE:タイトル
CONTENT:投稿内容

モデル:Board
データベーステーブル:boards
テーブルクラス:BoardsTableクラス(BoardsTable.php)
エンティティクラス:(Boards.php
コントローラクラス: (BoardsController.php
ビュー:「Template」内の「Boards」フォルダに、index.ctpなどのテンプレートを配置

このようにCakePHPでは、モデルも命名規則がありあらかじめ決められた規則にしたがって名付けをする。

MVC命名規則

ここで一旦MVCの全体を一回触ったので命名規則の整理を。

  • モデルの命名規則
    1.DBのテーブルは複数形
    2.モデルの名前は単数形のキャメル記法
    3.テーブルクラスは複数形+Tableのキャメル記法
    4.エンティティクラスは単数形形のキャメル記法
    5.スクリプトファイル名はクラス名をそのまま

  • コントローラの命名規則
    1.コントローラクラス名は、コントローラ名の複数形+Controllerのキャメル記法 2.スクリプトファイルは、コントローラ名をそのまま 3.アクションメソッドは小文字で始まるキャメル記法

  • ビューの命名規則
    1.ビューを保管するフォルダ名は、コントローラ名そのまま
    2.ビューテンプレートファイル名は、アクションメソッド名をアンダースコア記法

こういった命名規則の背景にある基本的な考え方は、
1.モデル関係(モデルの名前、エンティティクラス名)は単数形、 それ以外(テーブル関係)でDBのデータを扱う名前は複数形

2.クラスをとして定義されるものはキャメル記法、クラスとは直接関係ないものはアンダースコア

次回からは実際のDBの設定、モデルの作成などを。