5

誰かがおそらくここで説明できますか? CakePHP には、db テーブルとコントローラーには複数名を使用し、モデルには単数名を使用するという規則があるのはなぜですか? 常に単数形や複数形を使用しないのはなぜですか? 私にとって、「ここで複数形と単数形のどちらを使用するべきか?」と常に考えなければならないのは混乱しているように思えます。(または、覚える簡単な方法はありますか??) そして、両方の組み合わせを使用する結合テーブルがあります!

どこかに正当な理由があると思いますが、それを見つけられませんでした。
(Ruby-on-Rails がそのように動作するという理由だけではないことを願っています。)

サイモン。

4

2 に答える 2

10

CakePHPの規約

CakePHPの慣習は、長年のWeb開発の経験とベストプラクティスから抽出されました。CakePHPで開発する際にはこれらの規則を使用することをお勧めしますが、これらの教義の多くは簡単に上書きされることに注意してください。これは、レガシーシステムで作業する場合に特に便利です。

正しい方法で要素を読み、考えることをより流暢にすることがアイデアだと思います。データベーステーブルは多くのレコードを保持しているため、常に複数形です。モデルは、単一のレコードを見つけることを検討する必要があるため、特異です。の選択フィールドは、多くのフィールドから1つを選択するため、model_idから自動的にオプションを取得します。$models

$model = $this->Model->find('first');  // reads like English
$model = $this->Models->find('first'); // slightly trips you up

$models = $this->Model->find('all');   // works okay
$models = $this->Models->find('all');  // more logical, but "this models" still trips

必ずしも完璧とは限りませんが、慣れればとてもいいコンベンションだと思います。しかし、最初はそれがどのように混乱する可能性があるかがわかります。

于 2009-11-18T00:09:46.120 に答える
4

簡単に覚える方法はありますか?

はい、命名規則がカウントされる部分 (db/model/controller) に関しては... モデルの名前 (ie. User) または外部キーの名前 (ie. user_id) でない場合は、複数形です。これら2つのものを除いて、すべては基本的に複数形です。

于 2009-11-19T13:40:52.767 に答える