Все настройки проекта хранятся в единственном файле
config.json, расположенном в корневом каталоге сайта. При
старте платформа читает его и определяет каждый параметр как
PHP-константу. Это означает, что в любом скрипте проекта вы можете
обращаться к параметрам конфигурации напрямую по имени, например
MELBIS_LANG или MELBIS_CACHE.
Файл config.json защищён от прямого обращения через
браузер правилом .htaccess.
Редактировать файл можно вручную, однако мы рекомендуем использовать встроенный диалог в программе Melbis Shop: меню «Проектирование → Инсталляция». Он предоставляет удобный графический интерфейс для всех параметров конфигурации и позволяет сразу проверить соединение с базой данных.
При создании витрины на платформе Melbis первым делом необходимо подключить файл
units/melbis.php— именно в нём происходит загрузкаconfig.jsonи инициализация платформы. Подробнее это описано в разделе «Корневые скрипты».
Пример файла конфигурации:
{
"MELBIS_DB_HOST_NAME": "localhost",
"MELBIS_DB_USER_NAME": "shop_user",
"MELBIS_DB_USER_PASS": "password",
"MELBIS_DB_NAME": "shop_db",
"MELBIS_DB_NICK": "ms",
"MELBIS_DB_CHARSET": "utf8mb4",
"MELBIS_DB_COMMAND": "SET sql_mode = CONCAT(@@sql_mode, ',NO_UNSIGNED_SUBTRACTION');",
"MELBIS_DB_ENGINE": "MyISAM",
"MELBIS_DB_ENGINE_TEMP": "Memory",
"MELBIS_TIME_ZONE": "Europe/Kyiv",
"MELBIS_LANG": "ru",
"MELBIS_CHARSET": "UTF-8",
"MELBIS_DESKTOP_CHARSET": "WIN1251",
"MELBIS_CACHE": true,
"MELBIS_TEMPLATE": "default",
"MELBIS_ROOT": "/",
"MELBIS_BUILD": "1",
"MELBIS_DEBUG_CODE": "",
"MELBIS_USER_LOG": false,
"MELBIS_IP_LIST": "",
"MELBIS_BACKUP_TIME_BEGIN": "05:00:00",
"MELBIS_BACKUP_TIME_END": "05:30:00"
}| Параметр | Описание |
|---|---|
MELBIS_DB_HOST_NAME |
Хост сервера MySQL. Может включать порт через двоеточие, например
localhost:3311. |
MELBIS_DB_USER_NAME |
Имя пользователя базы данных. |
MELBIS_DB_USER_PASS |
Пароль пользователя базы данных. |
MELBIS_DB_NAME |
Имя базы данных. |
MELBIS_DB_NICK |
Псевдоним (префикс) таблиц. Используется в
SQL-запросах как {DBNICK}. Например, при значении
ms таблица {DBNICK}_topic превращается в
ms_topic. Это позволяет хранить несколько проектов в одной
базе данных без конфликтов имён таблиц. |
MELBIS_DB_CHARSET |
Кодировка соединения с базой данных. Рекомендуется
utf8mb4. |
MELBIS_DB_COMMAND |
SQL-команда, выполняемая сразу после подключения к базе данных. Как правило, используется для настройки режима работы MySQL. |
MELBIS_DB_ENGINE |
Движок таблиц по умолчанию. Рекомендуется MyISAM — он
обеспечивает эффективную работу табличного кеша платформы. |
MELBIS_DB_ENGINE_TEMP |
Движок для временных таблиц. Рекомендуется Memory для
максимальной скорости. |
| Параметр | Описание |
|---|---|
MELBIS_TIME_ZONE |
Часовой пояс сервера. Используется во всех операциях с датой и
временем. Значение должно соответствовать формату PHP, например
Europe/Kyiv, UTC. |
MELBIS_LANG |
Язык интерфейса по умолчанию, например ru,
en, uk. |
MELBIS_CHARSET |
Кодировка страниц сайта. Рекомендуется UTF-8. |
MELBIS_DESKTOP_CHARSET |
Кодировка для обмена данными с Windows-клиентом Melbis Shop. Как
правило, WIN1251. |
| Параметр | Описание |
|---|---|
MELBIS_CACHE |
Включает (true) или отключает (false)
систему кеширования. При разработке удобно временно отключить, чтобы
видеть изменения без сброса кеша. |
MELBIS_TEMPLATE |
Имя активного набора шаблонов. По умолчанию — default.
Соответствует имени подкаталога внутри templates/. |
MELBIS_ROOT |
Путь к сайту относительно корня домена. Если сайт находится в корне
— /. Если в подкаталоге, например
www.site.com/shop/ — укажите /shop/. Значение
используется для формирования корректных ссылок. |
MELBIS_BUILD |
Номер текущей сборки. Добавляется к URL-адресам CSS и JavaScript
файлов в качестве параметра кеш-бастера (?v=1).
Увеличивайте значение при выкатке новой версии фронтенда, чтобы браузеры
обновили файлы. |
| Параметр | Описание |
|---|---|
MELBIS_DEBUG_CODE |
Секретный ключ для включения режима отладки. Чтобы активировать
отладчик, добавьте к URL параметр ?debug_on_KEY, где
KEY — значение этого параметра. Если значение пустое —
отладчик отключён. |
MELBIS_USER_LOG |
Включает (true) ведение журнала действий
пользователей. |
MELBIS_IP_LIST |
Список IP-адресов через запятую. Если задан — доступ к сайту будет открыт только с этих адресов. Удобно для ограничения доступа во время разработки. |
| Параметр | Описание |
|---|---|
MELBIS_BACKUP_TIME_BEGIN |
Время начала окна резервного копирования в формате
ЧЧ:ММ:СС. |
MELBIS_BACKUP_TIME_END |
Время окончания окна резервного копирования в формате
ЧЧ:ММ:СС. |
В заданный промежуток времени платформа может выполнять служебные операции по резервному копированию данных.
Помимо системных параметров конфигурации, платформа поддерживает
пользовательские константы проекта — произвольные пары «ключ →
значение», хранящиеся в таблице базы данных
{DBNICK}_self_key_value. Это удобный механизм для хранения
настроек, специфичных для конкретного проекта: ключей API, рабочих
часов, лимитов, переключателей функций и любых других данных.
Управлять этими константами удобнее всего через программу Melbis Shop: меню «Проектирование → Реестр настроек», закладка «Пользовательские настройки». Интерфейс позволяет задать сложную, но наглядную структуру — для каждой константы указывается имя ключа, префикс, наименование, значение и описание. Кроме того, здесь настраиваются права доступа: можно разрешить редактирование конкретных констант через программу только определённым группам пользователей.
Для загрузки пользовательских констант в PHP-код существуют два метода:
DefineSelfConst() — загружает
все записи из таблицы
{DBNICK}_self_key_value как PHP-константы, доступные в
любом модуле:
MELBIS()->DefineSelfConst();
// После этого в коде можно использовать:
// SHOP_WORK_TIME_BEGIN -> '08:00'
// SHOP_WORK_HOLIDAY -> 'Sat/Sun'DefineSelfVars($prefix) — загружает
только записи с указанным префиксом и помещает их в глобальный массив,
делая доступными в HTML-шаблонах (подробнее — в разделе «Глобальный
массив»):
MELBIS()->DefineSelfVars('CONST');
// В шаблоне становится доступно:
// {CONST:SOME_KEY}Таким образом, DefineSelfConst работает с пространством
PHP-констант и охватывает все записи, а DefineSelfVars —
избирательная загрузка по префиксу в контекст шаблонизатора.