← К заметкам

Заметки

Как правильно подключать prolog_before.php в CLI-скрипте

Для CLI-скрипта в /local/tools сначала задайте корень сайта, затем подключите служебный пролог. Ограничение PHP_SAPI не позволит случайно запустить эту команду через браузер.

<?php

if (PHP_SAPI !== 'cli') {
    http_response_code(403);
    exit;
}

$_SERVER['DOCUMENT_ROOT'] = dirname(__DIR__, 2);
define('NO_KEEP_STATISTIC', true);

require_once $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php';

if (!\Bitrix\Main\Loader::includeModule('crm')) {
    throw new RuntimeException('Модуль crm не подключён.');
}

echo 'CRM подключена' . PHP_EOL;

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

Если дальнейший код работает с CRM-операциями, задайте доверенный контекст пользователя явно. Публичный endpoint и служебная консольная команда требуют разных проверок.