Вопрос к разработчикам (ругаюсь матом)

Ребят, зачем держать всё это дерьмо в конфиге базы данных? (db.php)

$this->fields = Array(
[id] => Array(
[type] => int
[params] => 11
[null] => 0
[autoincrement] => 1
)
[product_id] => Array(
[type] => int
[params] => 11
[null] => 0
)
[sku] => Array(
[type] => varchar
[params] => 255
[null] => 0
)

Почему нельзя использовать кеш и туда распарсить подобный запрос?
show create table `shop_product_skus`;
+ по кнопочке в админке обновлять данный кеш, делается достаточно элементарно. А в конфиге можно оставить только названия таблиц, если они нужны и не знаю какие то поля ридонли или что-то в таком духе.
Я понимаю если бы в качестве типа указывался какой нибудь обработчик например, автоматическое форматирование даты или цены. не знаю. тогда ещё хоть как то можно было понять.
Абсолютно дублируется то что есть в базе данных, из каких соображений палки в колёса вставляют, секьюрность?

Ругаюсь потому, что добавил поля в базу и никак не хотят сохраняться, видимо из-за этой ерунды, db.php переписал но видимо мало от него толку.

3 ответа

  • 1
    Леонид Вакуленко Webasyst 3 февраля 2014 03:04 #
    db.php используется только при генерации базы во время установки приложения. Не знаю, это ли вы пытаетесь сделать, но на всякий случай уточню: одно только изменение db.php само по себе не заставит фреймворк обновить БД уже установленного приложения.

    Далее. Если вы любыми методами меняете таблицу БД уже установленного приложения (руками через phpMyAdmin, обновлением в lib/updates, и т.п.), модели фреймворка автоматически узнают об этом именно тем способом, который вы описали: show create table. При этом в не-дебаг-моде результат кешируется в wa-cache, чтобы не делать 10 лишних запросов в БД. Если вы разрабатываете в дебаг-моде, никаких проблем быть не должно.

    Расскажите и правда, что именно вы пытаетесь сделать.
    • -1
      Сергей Сергей 6 февраля 2014 05:01 #
      В общем вы правильно заметили - в процессе добавления полей руками в Navicat, т.е. в целом всё чудесно, кроме того что пришлось долго разбираться, почему поля не хотели обновляться, в системе есть стандартный метод обновления, он проверяет по db.php + wa-cache/db/*table_name* который в итоге и пришлось чистить и после этого всё превосходно заработало.

      Вот по поводу дебаг мода достаточно интересно как его можно включить т.к. я видимо не в нём делал. Через фтп-каждый раз конечно геморойно всё это чистить. Где то о нём можно почитать подробнее?

      Спасибо.
  • 0
    Сергей 2 февраля 2014 07:03 #
    Кстати, что ещё больше вызывает восторженные восклики, этот файл db.php по мимо всего прочего ещё и кешируется.

    т.е. каждый раз после еды нам надо чистить соответствующие файлы в папке:
    /wa-cache/db/*
  • 0
    Михаил Ушенин Webasyst 3 февраля 2014 01:56 #
    А теперь расскажите, при реализации чего именно у вас возникли такие эмоции.

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите