Контент


Своя CMS: разочаровался я в префиксах Database в 2.3.x

Как я уже писал ранее, я планировал использовать собственные префиксы для каждого модуля (т.е. `blog_` для модуля Blog, `forum_` для Forum и т.д.). Однако все больше и больше открывается проблем.

Дело в том, что в методах Query Builder реализована автоматическая подстановка префиксов перед именами таблиц, но сам префикс берется из настроек текущего объекта Database, т.е. при взаимодействии двух моделей с разными значениями table_prefix результат будет тоже разным. А так как очень часто в ORM-моделях модулей идет взаимодействие с моделями ядра (не имеющими префиксов, например с User_Model) и между собой (разные префиксы), то придется отказаться от заманчивой идеи с короткими названиями моделей, заменив их более громоздкими (Forum_Posts вместо Posts, Forum_Assigned_Roles вместо Assigned_Roles и т.д.). Впрочем, есть и капля меда в этой бочке дегтя — взаимосвязь между базой данных и названиями моделей становится более очевидной, а по имени модели можно определить ее принадлежность к конкретному модулю.

Мне лично кажется, что сами разработчики не сильно используют префиксы, по крайней мере не «скрещивают» между собой модели с различными профилями БД…

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

Опубликовано в Пишем CMS.

Теги: , .


Комментарии (2)

Будьте в курсе обсуждения, подпишитесь на RSS ленту комментариев к этой записи.

  1. Xobb пишет:

    Может тогда лучше попробовать Doctrine? Оно выглядит как более законченое решения для работы с базой. И вот манул по интеграции в соседнем блоге http://php-velosiped.org.ua/blog/interesting_methods/33.html

  2. BIakaVeron пишет:

    Да, я читал про нее. Честно говоря, я собираюсь потихоньку тестировать 2.4 и 3.0, там все совсем по-другому должно выглядеть.
    А Вы доктрину не пробовали? ОРМ меня на данный момент прельщает своей простотой и элегантностью, доктрина вроде как более громоздкий «агрегат» :)



Можно включить подсветку кода: <code><pre lang="">...</pre></code>
Разрешены некоторые HTML теги

или используйте trackback.