Консольные команды
Консольные команды ядра (php bitrix.php) базируются на компоненте Symfony Console и регистрируются в секции console файла .settings.php модуля. Запуск процедур через CLI исключает риски прямого доступа к скриптам через браузер и обеспечивает возврат стандартных кодов завершения для связки с cron и CI/CD.
Прогресс хранится в этом браузере. Войдите, чтобы сохранить его в аккаунте.
Что нужно понимать
-
1
CLI в Битрикс
-
2
Создание команды
-
3
Аргументы и опции
Материалы
Официальная документация
Материалы BXMax
Рекомендуем со стороны
-
bxmax.cli: консольные команды для Bitrix Репозиторий
Проверь себя
Класс команды написан, наследует Symfony Command, но в php bitrix.php list его нет. Что забыли?
Секцию console с массивом commands в .settings.php модуля, и модуль должен быть установлен. Без регистрации ядро о классе не знает.
Команда из cron падает с ошибкой определения DOCUMENT_ROOT или не находит модуль. В чём типичная причина?
Запуск по абсолютному пути без cd в корень сайта. bitrix.php вычисляет DOCUMENT_ROOT от своего расположения, и документация требует сначала перейти в корень, затем запускать php bitrix/bitrix.php command --no-interaction.
Чем консольная команда лучше PHP-файла в корне сайта с require пролога, который дёргает cron?
Файл в корне доступен через веб-сервер и может быть запущен кем угодно, у него нет аргументов, справки и кода возврата. Команда недоступна извне, принимает опции, пишет вывод и возвращает код, который cron и деплой умеют проверять.
Заказчик просит выполнить тяжёлый пересчёт из админки кнопкой. Почему команда всё равно нужна?
Кнопка запускает работу на хите с ограничениями по времени и памяти веб-сервера. Кнопка может лишь поставить задачу, а выполнить её должна команда по cron или очередь; иначе пересчёт упадёт по таймауту на середине.
Не сходится?
Спросите ассистента BXMax: он знает документацию и материалы сайта по этой теме.
Знаете материал лучше?
Предложите ссылку: после проверки она появится в этом разделе.
Войти, чтобы предложить