日々精進

aikoと旅行とプログラミング

CakePHPの命名規則

CakePHPには命名規則というものが存在する。
なぜならば、「設定より規約」という考え方だ。コレについては省略。
例えばクラス名であったり、テーブル名であったり。
初めて見る私にとっては少し複雑であるため、一応わかったことだけでもまとめておこうと思う。

基本

キャメル記法

単語の先頭を大文字で記述する。大体こいつを使う。

  • PeopleController
  • CakesController
アンダースコア記法

2つの単語を連結する際に使われる。DBのテーブル名、フィールド名に使われる。

複数

様々な場面で複数形を使用する。(使い所は後ほど)
Person → People
child → children
apple → apples

モデルの規則

app/Modelに配置する。
単数形】【キャメル記法】を用いて命名する。
モデルに対応するテーブルは、【複数形】【アンダースコア記法】で記述する。

クラス名 ファイル名 テーブル名
Person Person.php people
Apple Apples.php apple
BigPerson BigPerson.php big_people

コントローラーの規則

app/Controllerに配置する。
【操作するモデルの複数形】【キャメル記法】を用いて命名する。
また、<名前> + Controllerの順で命名する。

モデル名 クラス名 ファイル名
Person PeopleController People.php
Apple ApplesController Apples.php
BigPerson BigPeopleController BigPeople.php

複数のモデルを使用する場合は、$usesという配列で表す。

$uses = array('Person','Apple');
URLについて

一つの単語からなるコントローラーは小文字のURLパスにマップできる。
PeopleControllerの場合は、example/peopleでアクセスできる。
複数の単語からなるコントローラーへのアクセスは、小文字+アンダースコア記法を用いる規則になっているため、BigPeopleControllerの場合

となる。

テーブルとフィールドの規約

テーブル

【アンダースコア記法】【複数形】で命名。

フィールド

【アンダースコア記法】【単数形】で命名

モデル名 テーブル名
Apple apples
Person people
BigPerson big_people

フィールドの規約として

id 外部キー 作成日時 更新日時

でいいのだろうか…
とりあえずここまで書いておくことにして後々追記をする。