Работа с БД при разработке плагина доставки
Здравствуйте! Пишу модуль доставки, в модуле необходимо создать несколько таблиц в базе данных. Плагин собираюсь размещать в Магазине Webasyst. Допустим, нужны 2 таблицы: myshipping_cities, myshipping_rates. Соответственно, вопросы:
1) где в модуле мне описывать вставку данных в эти таблицы при установке модуля? Например, в таблице myshipping_rates будут содержаться тысячи комбинаций сроков доставки, эти комбинации заранее известны.
2) необходимо ли для каждой таблицы создавать модели или я могу обойтись работой с этими таблицами, выполняя запросы в явном виде (например, waCountryModel::getInstance()->query() с подстановкой плейсхолдеров)?
1) где в модуле мне описывать вставку данных в эти таблицы при установке модуля? Например, в таблице myshipping_rates будут содержаться тысячи комбинаций сроков доставки, эти комбинации заранее известны.
2) необходимо ли для каждой таблицы создавать модели или я могу обойтись работой с этими таблицами, выполняя запросы в явном виде (например, waCountryModel::getInstance()->query() с подстановкой плейсхолдеров)?
9 ответов
Тема старая а вопрос актуальный.
У системных плагинов не может быть БД
не бд, а таблиц
На данный момент нормальной поддержки моделей и работы с бд в системных плагинах нет, это не значит что её там нельзя реализововать или что wa против, просто нет штатных средств для этого.
Но лучше пересмотреть позицию и пока что разкидать данные в кеше.
я в xml сохраняю и не парюсь
а так-то да. реализовать можно, но это совсем костыль от безысходности
я перел на waVarExportCache, нативные массивы грузятся побыстрее :)
По XML можно искать, как по бд. Ну почти. С помощью xpath.
по массиву тоже) парсить каждый раз xml слишком ресурсоемко.
Если все-таки без своих таблиц ну никак, то вот пример кода моего плагина:
lib\config\db.php:
lib\models\grastinShippingPickup.model.php: