← К заметкам

Заметки

Почему не стоит всё писать в init.php

init.php подключается во многих запросах портала. Если положить туда выборку всех сделок или обращение к внешнему API, эта работа начнёт выполняться далеко за пределами нужного сценария.

Оставьте в файле подключение автозагрузки и регистрацию обработчиков. Сам обработчик вынесите в класс, а тяжёлую обработку — в очередь или отдельную команду.

Особенно легко ошибиться с кодом на верхнем уровне файла:

$deals = CCrmDeal::GetListEx([], ['CLOSED' => 'N']);

Такой запрос запускается при подключении файла. Размещение той же строки внутри функции меняет момент выполнения: работа начнётся только при вызове функции.

Ещё одна причина не превращать init.php в большой скрипт — цена синтаксической ошибки. Она может нарушить и публичные страницы, и административный раздел. Код модуля проще проверять и подключать в нужном контексте.