Download the PHP package mb4it/bitrix-console without Composer

On this page you can find all versions of the php package mb4it/bitrix-console. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package bitrix-console

mb4it/bitrix-console

Консоль в стиле artisan для 1С-Битрикс поверх symfony/console — с агент-слоем для ИИ: любая команда умеет отдавать машиночитаемый JSON-конверт, самоописываться (manifest/describe), работать неинтерактивно и с детерминированными кодами возврата. Namespace — MB\Bitrix\Console\.

Пакет собирает команды из себя, из других mb4it-пакетов и из штатной консоли Битрикса (.settings.php['console']['commands']) в один бинарь bx.

Требования

Опциональные пакеты-компаньоны (ставить не обязательно):

Быстрый старт

Пакет самодостаточен: обязательны только symfony/console + psy/psysh и ядро Битрикса — НЕ требует mb4it/bitrix-support.

Пакеты-сателлиты подключаются автоматически через discovery: они объявляют провайдер в composer.json → extra.mb-console.providers, а Console\PackageManifest читает vendor/composer/installed.json. Так, mb4it/bitrix-migration добавляет команды migrate* — ручной регистрации не нужно.

Готовый бинарь появится как vendor/bin/bx. Всё работает сразу:

Чтобы вызывать просто php bx …, поставьте точку входа в корень сайта одной командой (см. «bx в корне сайта»):

vendor/bin/bx сам поднимает ядро Битрикса (CLI). Контейнер один на приложение с фолбэком: если установлен mb4it/bitrix-support, консоль подхватывает его общий контейнер приложения (те же сервисы, что и в вебе); если support нет — работает на собственном минимальном контейнере. Отдельного включения модулей не требуется.

Расположение vendor роли не играет — оно может быть в корне (vendor/bin/bx), в local/vendor/bin/bx или в vendor модуля: composer-прокси сам знает путь к своему autoload.php. Меняется только путь запуска (php local/vendor/bin/bx …).

DOCUMENT_ROOT ищется независимо от vendor: из переменной окружения BITRIX_DOCUMENT_ROOT, иначе поиском вверх от текущего каталога до папки с bitrix/. Поэтому запускайте из любого места внутри проекта, либо задайте env (например, для cron с cwd=/):

Далее в примерах bx = php vendor/bin/bx. Для краткости добавьте в проект обёртку или shell-alias, например alias bx='php vendor/bin/bx'.

Команды видны и через штатную консоль Битрикса (php bitrix/modules/main/cli/bitrix.php <команда>) — мост через .settings.php.

Веб-контекст. Чтобы классы пакетов были доступны и вне CLI, подключите composer-автозагрузку как обычно в Bitrix-проекте (например, require vendor/autoload.php в local/php_interface/init.php).

bx в корне сайта

Чтобы разработчики вызывали просто php bx <команда>, установите точку входа в корень одной командой:

bx:install генерирует самодостаточный CLI-only файл; путь к composer-автозагрузке вычисляется при установке (с фолбэками на local/vendor и vendor). Опции: --path (каталог), --name (имя файла, по умолчанию bx), --force (перезаписать). После переноса проекта перегенерируйте: bx bx:install --force.

Безопасность. Сгенерированный bx исполняется только из CLI: при обращении по HTTP отдаёт 404 и ничего не выполняет (консоль умеет tinker — выполнение произвольного PHP). Тем не менее для файла в веб-корне соблюдайте гигиену:

Локальная разработка пакетов

Если пакеты подключаются как локальные path-репозитории (не с Packagist), добавьте их в repositories потребителя:

Агент-слой

Любая команда-наследник MB\Bitrix\Console\Command принимает глобальные опции:

Конверт (MB\Bitrix\Console\Output\Envelope):

При ошибке — ok:false, exitCode>0 и error:{type,class,message,code} (в т.ч. для ошибок уровня фреймворка: неизвестная команда, неверная опция).

Правила для агента:

Открытие возможностей без угадывания:

Справочник команд

Ядро / интроспекция

Команда Назначение
about Окружение и рантайм консоли.
manifest Машиночитаемый список всех команд (discovery для ИИ).
describe <command> Детальное описание одной команды.
tinker REPL / выполнение PHP в поднятом приложении (см. ниже).
bx:install Установить точку входа bx в корень сайта (см. «bx в корне сайта»).
ai:skills Сгенерировать skill/инструкцию по консоли для ИИ-агента (.claude/skills/bx-console/SKILL.md).

Версионируемые миграции (движок — mb4it/bitrix-migration)

Команда Опции Деструктивно
migrate --module, --path нет
migrate:status --module, --path нет
migrate:rollback --step, --force, --module, --path да
migrate:fresh --force, --module, --path да
make:migration <name> --module, --path нет
migrate:install — нет

--module <id> — миграции в <module>/migrations/ с изоляцией в леджере. migrate:install создаёт таблицу-леджер mb_migration_version (идемпотентно).

Генераторы миграций из живых сущностей

Читают существующую сущность Битрикса и создают файл миграции (up() воссоздаёт, down() откатывает) через fluent-билдеры пакета mb4it/bitrix-migration. Стратегия переносимости: воссоздание по ID → фолбэк по XML_ID/коду. Все принимают --module/--path/--name (куда положить) и --format=json.

Команда Что экспортирует
make:migration:options <module> опции модуля (b_option)
make:migration:iblock <id\|code> инфоблок + свойства + разделы
make:migration:iblock-elements <id\|code> элементы + свойства (--filter JSON, --ids, --limit)
make:migration:hlblock <id\|name> HL-блок + поля (UF)
make:migration:hlblock-elements <id\|name> строки HL-блока (--filter, --ids, --limit)
make:migration:agents агенты (--for-module)
make:migration:mail почтовые типы событий + шаблоны (--event)
make:migration:user-groups группы пользователей
make:migration:users пользователи (--filter, --ids, --limit) — без хешей паролей
make:migration:sitemap конфигурации sitemap (seo)

Те же билдеры доступны и для ручного написания миграций: \MB\Bitrix\Database\Migrations\Builders\OptionBuilder::make('main','x')->value('1')->apply();.

Жизненный цикл модуля (оркестратор MB\Bitrix\Migration\Facade)

Только при установленном mb4it/bitrix-support. Эти команды используют его оркестратор MB\Bitrix\Migration\Facade, поэтому в standalone-консоли (без support) они скрыты — bx list их не покажет.

Команда Опции Деструктивно
module:install <id> --only=files,storage,events,agents нет
module:uninstall <id> --only=..., --force да

Синхронизирует files → storage (ORM-таблицы) → events + агенты (через AgentManager). module:install идемпотентна.

Генераторы

Команда Опции
make:command <name> --namespace, --path, --command, --description, --force
make:orm <name> --namespace, --path, --table, --force (создаёт Storage\Base)

Штатные генераторы Битрикса (make:agent, make:component, make:entity, make:controller, make:module, make:tablet …) доступны через bx как есть — дубли не создаются.

Служебные (read-only, удобны агенту)

Команда Назначение
cache:clear Очистить managed- и файловый кэш Битрикса.
events:run Запустить крон-обработчик Битрикса (агенты + очередь почты/sender).
module:list Установленные модули и версии.
iblock:list Инфоблоки.
hlblock:list Highload-блоки.
agent:list Зарегистрированные агенты.

events:run заменяет крон-строку Битрикса — запускает bitrix/modules/main/tools/cron_events.php в отдельном PHP-процессе (свои константы BX_CRONTAB и т.д.) и возвращает его вывод/код:

Инспекция: инфоблоки, настройки, события (read-only)

Инфоблоки принимают id или символьный код. Все команды поддерживают --format=json.

Команда Назначение
iblock:types Типы инфоблоков.
iblock:info <id\|code> Метаданные ИБ + счётчики элементов/разделов.
iblock:properties <id\|code> Свойства (код, тип, множ., связь, enum-значения).
iblock:sections <id\|code> Разделы в порядке дерева.
iblock:elements <id\|code> Элементы: --filter (JSON), --select, --order (JSON), --limit, --offset, --with-props.
iblock:element <id\|code> <elId> Один элемент: все поля + свойства.
option:list <module> Все опции модуля (b_option).
option:get <module> <name> Одна опция (--site, --default).
config:module [module] Секции .settings.php модуля (или проекта).
event:handlers [module] [event] Постоянные обработчики (b_module_to_module).
agent:run <id> ⚠️ Ручной прогон одного агента (--force).

Пример запроса элементов:

tinker

Аналог Laravel Tinker (на PsySH).

В JSON-режиме результат: data.result (строка), data.resultType, data.output (перехваченный вывод).

На Windows/PowerShell 5.1 пайп в stdin искажает кодировку — используйте --execute или cmd-пайп.

Как написать свою команду

  1. Унаследуйте MB\Bitrix\Console\Command, реализуйте handle(): int:

  2. Заготовку можно получить командой: bx make:command SyncOrdersCommand.

  3. Зарегистрируйте команду одним из двух способов:

    а) через .settings.php модуля (виден и bx, и штатному bitrix.php):

    б) через тег контейнера в своём ServiceProvider:

При совпадении имени команды приоритет у зарегистрированных через пакет/тег над штатными командами Битрикса.

API базового Command

Член Назначение
handle(): int Тело команды. Верните self::SUCCESS / FAILURE / INVALID.
$this->input, $this->output, $this->io Symfony input/output + SymfonyStyle.
$this->app Общий контейнер (контракт Console\Contracts\Container): Foundation-приложение при наличии support, иначе собственный Console\Container.
$this->format text или json.
data($k, $v) / setData([...]) Добавить в машинный payload (всегда).
note() / warn() / success() Человеко-сообщения (в json уходят в messages).
table($headers,$rows,$dataKey) Таблица: в text печатает, в json кладёт в data[$dataKey].
textTable($headers,$rows) Таблица только для человека (json берёт данные из data()).
isDestructive(): bool true → требует --force.
manifestMeta(): array Примеры/заметки для manifest/describe.

Что внутри

Класс Назначение
Kernel Резолвит контейнер (adopt Foundation ↔ свой), регистрирует провайдеры и команды (тег + .settings.php), запускает.
Application symfony/console Application (autoexit off).
Command Базовая команда с агент-слоем.
Contracts\Container Контракт контейнера, общий для собственного и support-контейнера.
Container Собственный минимальный контейнер (standalone-фолбэк).
Container\SupportAdapter Обёртка над Foundation-контейнером support (единый контейнер).
Container\ActiveContainer Статический холдер активного контейнера для команд.
PackageManifest Discovery провайдеров из extra.mb-console.providers.
CoreServiceProvider Регистрирует свои команды; module:install/uninstall — только при support.
Output\Envelope Машиночитаемый конверт результата.
Support\CommandDescriptor Интроспекция команды для manifest/describe.
Support\StubGenerator Рендер стабов для make:*.
Command\{About,Manifest,Describe,Tinker}Command Ядро/интроспекция/REPL.
Command\Module\* module:list (всегда); module:install/uninstall — при support.
Command\Make\* make:command, make:orm.
Command\{Iblock,Hlblock,Option,Agent,System}\* Read-only инспекция и служебные команды.
ServiceProvider Абстрактный базовый провайдер (сателлиты наследуют).

Команды migrate* / make:migration* живут в mb4it/bitrix-migration и приходят через его провайдер (discovery), а не из этого пакета.

Как это собирается (Kernel)

  1. bootNativeModules() подключает модули с console.commands (в т.ч. поднимает Foundation-приложение support, если оно есть в проекте).
  2. Резолв контейнера: SupportAdapter поверх Foundation при наличии support, иначе собственный Console\Container.
  3. Команды из тега контейнера console.command (наши — в приоритете) + из .settings.php['console']['commands'] каждого модуля (совместимость с bitrix.php, дедуп по имени).
  4. Итог — один symfony/console Application; bx и bitrix.php видят один набор.

Биндинги контейнера

Ключ Класс
StubGenerator::class StubGenerator (singleton)

Команды тегируются как console.command. Сателлиты (напр. mb4it/bitrix-migration) добавляют свои биндинги (migrator, репозиторий, PathRegistry …) через собственный провайдер.


All versions of bitrix-console with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2
symfony/console Version ^6.4|^7.0
psy/psysh Version ^0.12
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package mb4it/bitrix-console contains the following files

Loading the files please wait ...