Блог Горошко Андрея 1C-Битрикс Консольные команды в Битрикс: Создание CLI-скриптов для bitrix.php

Консольные команды в Битрикс: Создание CLI-скриптов для bitrix.php

В современном Битрикс (с версии main 20.100.0) появилась нативная поддержка консольных команд на базе Symfony Console.

Теперь вместо создания разрозненных PHP-файлов для CRON можно писать структурированные команды с аргументами и опциями, запускаемые через единый файл bitrix.php в корне сайта.

Шаг 1: Создание класса команды

Класс команды должен наследоваться от \Bitrix\Main\Cli\Command (или Symfony\Component\Console\Command\Command).

Создадим файл /local/modules/my.module/lib/Cli/TestCommand.php

namespace My\Module\Cli;

use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Input\InputArgument;

class TestCommand extends Command
{
    // Настройка команды
    protected function configure()
    {
        $this
            // Имя команды для вызова (например, php bitrix.php my:test)
            ->setName('my:test')
            // Описание
            ->setDescription('Тестовая команда для проверки CLI')
            // Аргумент (обязательный)
            ->addArgument('name', InputArgument::REQUIRED, 'Имя пользователя');
    }

    // Логика выполнения
    protected function execute(InputInterface $input, OutputInterface $output)
    {
        $name = $input->getArgument('name');
        
        $output->writeln("Привет, <info>$name</info>! Это CLI Битрикс.");
        
        // Возвращаем статус (0 - успех, 1 - ошибка)
        return Command::SUCCESS;
    }
}

Шаг 2: Регистрация команды в .settings.php

Битрикс должен узнать о вашей команде. Для этого нужно добавить её в конфигурацию модуля.

Файл /local/modules/my.module/.settings.php

return [
    'controllers' => [
        'value' => [
            'defaultNamespace' => '\\My\\Module\\Controller',
        ],
        'readonly' => true,
    ],
    // Секция для консольных команд
    'console' => [
        'value' => [
            'commands' => [
                \My\Module\Cli\TestCommand::class,
            ],
        ],
        'readonly' => true,
    ],
];

Шаг 3: Запуск

Теперь откройте терминал, перейдите в корень сайта (туда, где лежит bitrix.php) и выполните:

php bitrix.php my:test Ivan

Результат: Привет, Ivan! Это CLI Битрикс.

Преимущества CLI:

  • Автоматическая проверка DOCUMENT_ROOT и подключение ядра.
  • Удобная работа с аргументами и флагами (например, —dry-run).
  • Красивый вывод (цвета, прогресс-бары, таблицы).
  • Единая точка входа для всех фоновых скриптов.

CLI bitrix, консольные команды, bitrix.php, symfony console, создание команды битрикс, cron скрипты, cli d7.

Похожая задача в бизнесе?

Помогу автоматизировать процессы и внедрить ИИ

Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.

Добавить комментарий

Related Post

Как использовать CIBlockElement::GetByID() в 1С-Битрикс: пример кодаКак использовать CIBlockElement::GetByID() в 1С-Битрикс: пример кода

Каждый PHP-разработчик, работающий с экосистемой Bitrix Framework, должен глубоко понимать работу её ключевых компонентов. В этой статье мы проведем подробный аудит темы «Как использовать CIBlockElement::GetByID() в 1С-Битрикс: пример кода», проанализируем

Разработка B2B-портала для оптовых клиентов и дилеров на 1С-БитриксРазработка B2B-портала для оптовых клиентов и дилеров на 1С-Битрикс

Создание и развитие эффективного веб-ресурса по направлению «Разработка B2B-портала для оптовых клиентов и дилеров на 1С-Битрикс» позволяет усилить позиции бренда на рынке, автоматизировать взаимодействие с заказчиками и кратно увеличить поток

Разработка интернет-магазина продуктов питания и доставки еды на 1С-БитриксРазработка интернет-магазина продуктов питания и доставки еды на 1С-Битрикс

Создание современного интернет-магазина продуктов питания и доставки еды на платформе 1С-Битрикс позволяет автоматизировать продажи, обеспечить высокую конверсию и бесшовную интеграцию с учетными системами. Для ниши «продуктов питания и доставки еды»