各部分をCakePHPの規約に合わせて命名しておくことで、混乱を招く面倒な設定をしなくても、機能的に動作するようになります。 以下が規約に合った命名の例です

  • コントローラクラス: “PeopleController”、 場所は /app/Controller/PeopleController.php
  • モデルクラス: “Person”、 場所は /app/Model/Person.php
  • データベースのテーブル: “people”
  • ビューのテンプレート、場所は /app/View/People/index.ctp

これらの規約により、CakePHPは、http://example.com/people/ へのリクエストを、PeopleControllerのindex()関数にマップします。 そして、Personモデルが自動的に使える(データベースの’people’テーブルに自動的に接続される)ようになり、表示されることになります。 必要なクラスとファイルを作成しただけで、これらの関係が設定されています。

コントローラの規約

コントローラのクラス名は複数形でキャメル記法で、最後に Controller が付きます。 URLリクエストによってコントローラは指定されたが、アクションは指定されなかったという場合、CakePHP のデフォルト動作では、そのコントローラの index() メソッドを実行することになっています。

モデルとデータベースの規約

モデルのクラス名は単数形でキャメル記法です。 Person、BigPerson、ReallyBigPerson などは規約に合ったモデル名です。
CakePHP のモデルに対応するテーブル名は、複数形でアンダースコア記法です。 上記の例で言えば、テーブル名はそれぞれ、 people 、 big_people 、 really_big_people になります。

ビューの規約

ビューのテンプレートファイルは、それを表示するコントローラの関数に合わせたアンダースコア記法で名前が付きます。 PeopleControllerクラスのgetReady()関数は、ビューテンプレートとして、/app/views/people/get_ready.ctpを探します。ビューテンプレートの形式は、 /app/views/コントローラ名/アンダースコア記法_関数名.ctpです。コントローラ名には、”Controller”は付けません。

ファイルとクラス名の規約

通常、ファイル名はクラス名にマッチしたものになり、キャメルケースとなり、MyNiftyClass というクラスがあれば、ファイルは MyNiftyClass.php と命名されます。また、クラス名とマッチしたものになるため、単数形や複数形がそのままファイル名となります。

各ファイルは、app フォルダ内のそれぞれ適切なフォルダの中に配置します。次に、 app の内部フォルダについて示します。

Controller
アプリケーションのコントローラとコンポーネントが入ります。
Model
アプリケーションのモデル、ビヘイビア、データソースが入ります。
View
表示用のファイルはここに置きます。 エレメント、エラーページ、ヘルパー、レイアウト、ビューのファイルなどです。
webroot
運用時用のセットアップでは、このフォルダがアプリケーションのドキュメントルートになります。 CSS スタイルシートや画像、JavaScript を入れるためのフォルダもあります。

コントローラ名とURL

CakePHPのURL構造は、初期の状態として次のようになってきます。

http(s)://ドメイン名/コントローラー名/メソッド名/パラメータ1/パラメータ2/・・・

ひとつの単語からなる名前のコントローラは、簡単に小文字のURLパスにマップできます。 例えば、 ApplesController (ファイル名は’ApplesController.php’)には、 http://example.com/apples としてアクセスできます。
複数の単語からなる名前のコントローラでは、URL は小文字とアンダースコアを用いるというのが規約であり、RedApplesController::go_pick アクションにアクセスするための正しい形式は /red_apples/go_pick となります。
CakePHPの設定ファイルであるroutes.phpに定義をすることにより、コントローラ名とアクション名をURLに付けなくても、コントローラとアクションを呼び出すことができます。

CakePHP2の規約ワードメーカーのサイトを次に示します。
http://www.endo.jp.net/
[gap height="16"]
使用法:Word typeラジオボタンは、Wordテキストフィールに入れた単語が複数形を示すのか、単数形を示すのかを設定します。例えば「People」をいれて、「単数形/single」をチェックすると、コントローラー名の項目には、「People」と表示されます。