Почему CakePHP использует разные соглашения о множественном / единственном числе именования? - PullRequest
5 голосов
/ 18 ноября 2009

Может кто-нибудь объяснить здесь, почему на земле CakePHP имеет соглашение об использовании множественных имен для таблиц и контроллеров БД и единственного числа для моделей? Почему бы не всегда использовать единичные термины или всегда множественное число? Мне кажется странным, что мне всегда приходится думать: «Теперь я использую множественное число или единственное число здесь?» (Или есть простой способ запомнить ??) И тогда у вас есть таблицы соединений, которые используют комбинацию обоих!

Я предполагаю, что где-то есть веская причина, но просто не сталкивался с этим.
(я действительно надеюсь, что это не только потому, что Ruby-on-Rails работает таким образом.)

Simon.

Ответы [ 2 ]

10 голосов
/ 18 ноября 2009

Соглашения CakePHP

Соглашения CakePHP основаны на многолетнем опыте веб-разработки и передовых практиках. Хотя мы предлагаем вам использовать эти соглашения при разработке с CakePHP, мы должны упомянуть, что многие из этих принципов легко переопределяются - что особенно удобно при работе с устаревшими системами.

Я думаю, что идея состоит в том, чтобы сделать его более свободным для чтения и правильного мышления об элементах. Таблицы базы данных всегда множественные, потому что они содержат много записей. Модель уникальна, потому что вы должны подумать о том, чтобы найти с ней одну запись. Поле выбора для 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

Это не всегда идеально, но я думаю, что это довольно хорошее соглашение, когда вы привыкнете к нему. Впрочем, я понимаю, как это может сбить с толку в начале.

4 голосов
/ 19 ноября 2009

Есть ли простой способ запомнить?

Да, в отношении частей, где учитывается соглашение об именах (дБ / модель / контроллер) ... Если это не имя модели (т. Е. User) или имя внешнего ключа (т. Е. user_id), то это множественное число. Все в основном во множественном числе, кроме этих двух вещей.

...