Конфигурация

Все настройки проекта хранятся в единственном файле 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 — избирательная загрузка по префиксу в контекст шаблонизатора.