Битрикс
20.04.2022
Выполнение скрипта битрикс в консоли
При написании скриптов для 1С-Битрикс часто требуется запускать PHP-файл отдельно:
- через cron;
- из консоли;
- для импорта данных;
- массовой обработки;
- парсинга;
- экспорта;
- служебных задач.
Для этого обычно используют подключение:
prolog_before.php
Пример шаблона standalone-скрипта
<?
$_SERVER["DOCUMENT_ROOT"] = '/var/www/site.ru/';
$DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"];
define("NO_KEEP_STATISTIC", true);
define("NOT_CHECK_PERMISSIONS", true);
define("NO_AGENT_CHECK", true);
define('LID', "s1");
define("LANG", "ru");
require(
$_SERVER["DOCUMENT_ROOT"]
. "/bitrix/modules/main/include/prolog_before.php"
);
set_time_limit(0);
// Полезный код
require(
$_SERVER["DOCUMENT_ROOT"]
. "/bitrix/modules/main/include/epilog_after.php"
);
?>
Что делает этот код
Код:
- инициализирует окружение Битрикс;
- подключает ядро системы;
- отключает лишние проверки;
- позволяет использовать API Битрикс вне сайта.
DOCUMENT_ROOT
$_SERVER["DOCUMENT_ROOT"]
задает:
- корневую директорию сайта.
Это особенно важно:
- при запуске через CLI;
- через cron;
- из консоли Linux.
NO_KEEP_STATISTIC
define("NO_KEEP_STATISTIC", true);
отключает:
- сбор статистики.
Это ускоряет выполнение скрипта.
NOT_CHECK_PERMISSIONS
define("NOT_CHECK_PERMISSIONS", true);
отключает:
- проверку прав доступа.
Особенно полезно:
- для cron;
- служебных скриптов;
- автоматизации.
NO_AGENT_CHECK
define("NO_AGENT_CHECK", true);
отключает:
- выполнение агентов Битрикс.
Это помогает:
- ускорить скрипт;
- избежать случайного запуска агентов.
LID
define('LID', "s1");
задает:
- ID сайта Битрикс.
Особенно важно:
- при многосайтовости;
- работе с почтовыми шаблонами;
- получении настроек сайта.
LANG
define("LANG", "ru");
задает:
- язык интерфейса.
Подключение prolog_before.php
require(
$_SERVER["DOCUMENT_ROOT"]
. "/bitrix/modules/main/include/prolog_before.php"
);
подключает:
- ядро Битрикс;
- модули;
- API;
- базу данных;
- глобальные объекты.
set_time_limit(0)
set_time_limit(0);
отключает:
- ограничение времени выполнения скрипта.
Это полезно:
- для импорта;
- парсеров;
- массовых операций.
epilog_after.php
epilog_after.php
завершает:
- работу окружения Битрикс;
- корректно закрывает обработку.
Где удобно использовать
- cron-задачи;
- импорт CSV;
- обновление товаров;
- парсеры;
- массовые обновления инфоблоков;
- резервные скрипты;
- интеграции.
Пример запуска через cron
*/5 * * * * /usr/bin/php /var/www/site.ru/script/import.php
Важно про безопасность
Не рекомендуется:
- оставлять такие скрипты в публичном доступе;
- размещать их в корне сайта;
- забывать проверку IP или авторизации.
Лучшее место для скриптов
Обычно служебные скрипты размещают:
/local/scripts/
или:
/cron/
Итог
Такой шаблон позволяет запускать полноценные PHP-скрипты с подключенным ядром 1С-Битрикс вне публичной части сайта.
Это базовая заготовка для:
- cron;
- импортов;
- экспортов;
- парсеров;
- служебных задач.
Комментарии