Соглашения об именах таблиц плагинов CakePHP HABTM (для 1.3) - PullRequest
2 голосов
/ 11 января 2010

Я знаю, что соглашения об именах для таблиц, используемых плагинами, обычно начинаются с названия плагина, а затем моделируются во множественном числе. Например, допустим, у меня был плагин с именем Poll, с моделью, также называемой PollPoll, и с другой моделью, называемой PollTag, тогда в результате имена таблиц были бы poll_polls и poll_tags. У них также были бы отношения habtm, так каково соглашение для того имени таблицы? Я полагаю, что это будет poll_poll_polls_poll_tags, хотя это немного избыточно, это имеет смысл, поскольку первый poll_ представляет имя плагина, тогда как poll_polls и poll_tags относится к моделям.

Также были ли изменены какие-либо соглашения об именах для плагинов в 1.3? Правильно ли указано выше?

Ответы [ 2 ]

2 голосов
/ 12 января 2010

Не уверен насчет торта 1.3 (я еще не использую его), но если вы правы, это звучит как вполне приемлемый случай нарушения соглашения и определения объединяемой таблицы и внешних ключей в отношениях модели и, возможно, в плагин.

Почему вашему плагину требуется таблица соединений? Похоже, проблема дизайна. Возможно, есть случай, когда это необходимо, но если бы у меня была связь HABTM с плагином, я бы добавил столбец modelname в таблицу плагина, вместо того чтобы создавать новую таблицу для каждой модели, которую я хотел использовать плагин.

0 голосов
/ 23 ноября 2010

На самом деле это еще не соглашение, что «таблицы, используемые плагинами, обычно начинаются с имени плагина, а затем моделируются во множественном числе».

Единственное место, где эта идея представлена, - это пример из книги , в которой фактически говорится: «Рекомендуется называть свои контроллеры плагинов чем-то относительно уникальным, чтобы избежать конфликтов пространства имен с родительскими приложениями ... возможно, вы захотите проявить креативность с именами контроллеров или добавьте имя плагина к имени класса. "

Ваши имена таблиц / моделей / контроллеров / представлений должны соответствовать обычным правилам именования CakePHP и принимать разумные меры предосторожности во избежание конфликта пространства имен. Так что было бы прекрасно иметь таблицу "foo_orders" для модели "foo_order" в плагине Bar.

...