web学習日記

プログラミングやweb関係を学んだことを呟くブログ

CakePHPの規約について

f:id:nana205:20190614011943j:plain

なぜ規約があるのか?

CakePHPの公式にも書いてある通り「設定より規約」の仕様になっているからです。
これはもともとRuby on Railsの手法をCakePHPが取り入れたからです。Ruby on Railsも「設定より規約」を元にしています。 規約をすることで開発を統一することができるので、自分以外の開発者がいてもするにプロジェクトに参加できます。 また、自己流で書いたコードは非常に読みずらく、コードの保守性に問題が出るからです。 フレームワークは使い始めは覚えることが多いですが、一度覚えれば簡単にそして圧倒的に時間を短縮させることができます。

CakePHPには規約の命名規則があります。

キャメルケース記法

こちらは2パターンあります。
1.パスカルケース
AritcleController.phpなど 単語の先頭大文字で表記する

2.キャメルケース
articlePage.phpなど
最初の単語だけは小文字それ以降は大文字表記

アンダーコア記法

スネークケース、単語の間にアンダースコアを入れる
article_page

CakePHP命名規約は?

View

コントローラーの関数名をアンダースコア記法にしたものが表示させる
ex.ArticleController article.ctpを表示
ex.editName()関数、edit_name.ctpなど表示する

コントローラー

複数形+パスカルケース+Controllerとなります。

ex.PlayMessageController
ex.UsersController

モデル (table entity)規約

Tableクラスは命名は複数形+パスカルケース+tableになります。 ex.PlayMessageTable
ex.UsersTable

ただし、Entityクラスは単数形になるので注意が必要です。
Userなど

データベースの規約

CakePHPはデータベーステーブルとModelが関連ずけられているのですが、テーブル名は複数形+アンダースコアになります。 ex.playing_message
フィールドやカラム名についてもアンダースコア表記になります。