Соглашения об именовании таблиц плагина CakePHP HABTM (для версии 1.3)

StackOverflow https://stackoverflow.com/questions/2044773

Вопрос

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

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

Это было полезно?

Решение

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

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

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top