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の命名規則
モデルの命名規則
1.DBのテーブルは複数形
2.モデルの名前は単数形のキャメル記法
3.テーブルクラスは複数形+Tableのキャメル記法
4.エンティティクラスは単数形形のキャメル記法
5.スクリプトファイル名はクラス名をそのままコントローラの命名規則
1.コントローラクラス名は、コントローラ名の複数形+Controllerのキャメル記法 2.スクリプトファイルは、コントローラ名をそのまま 3.アクションメソッドは小文字で始まるキャメル記法ビューの命名規則
1.ビューを保管するフォルダ名は、コントローラ名そのまま
2.ビューテンプレートファイル名は、アクションメソッド名をアンダースコア記法
こういった命名規則の背景にある基本的な考え方は、
1.モデル関係(モデルの名前、エンティティクラス名)は単数形、
それ以外(テーブル関係)でDBのデータを扱う名前は複数形
2.クラスをとして定義されるものはキャメル記法、クラスとは直接関係ないものはアンダースコア
次回からは実際のDBの設定、モデルの作成などを。