units/melbis.php — не обычный модульный скрипт. У него
нет главной функции, нет шаблонов, и парсер его не вызывает. Это
системный файл инициализации окружения, который подключается вручную
один раз в корневом скрипте:
require 'units/melbis.php';Это единственное ручное подключение файла во всём проекте. Все остальные модули платформа подключает автоматически: разработчик указывает зависимости в параметрах модуля через IDE, и парсер сам подгружает нужные файлы при запуске. Глубина вложенности не ограничена.
melbis.php — это не обычный модульный скрипт. У него нет
главной функции, нет шаблонов, и парсер его не вызывает. Это системный
файл инициализации окружения, который подключается вручную один раз в
корневом скрипте. Он выполняет следующее:
Загрузка ядра и конфигурации. Подключает
core/core.php, читает config.json и определяет
все его параметры как PHP-константы. Проверяет наличие файла
shop.lock — если он существует, сайт блокируется с
сообщением об ошибке (используется во время резервного копирования или
технических работ).
Настройка обработчиков ошибок. Перехватывает
PHP-ошибки времени выполнения и фатальные ошибки, передавая их в функцию
MELBIS_halt. Если на сервере создан файл
error.save, ошибки дополнительно записываются в лог-файл
_error_front.log с подробным контекстом: URL, IP,
User-Agent, данные POST и сессии.
Регистрация автозагрузчика. Подключает Composer
(если используется) и регистрирует автозагрузчик классов платформы из
каталога core/class/. Благодаря этому все классы Melbis
подгружаются автоматически по мере необходимости.
Функция MELBIS() — единственная
глобальная функция, которую разработчик использует в своих скриптах.
Реализована как синглтон: при первом вызове создаёт соединение с БД и
экземпляр парсера, при последующих — возвращает уже созданный. Именно
через неё вызываются все методы платформы.
Функция MELBIS_halt() — аварийное
завершение работы. Выводит страницу с описанием ошибки и останавливает
выполнение скрипта. В период резервного копирования (окно задаётся в
config.json) возвращает код
503 Service Unavailable вместо 500.