Skip to content

Коллектор команд

Захватывает выполнение консольных команд — имя команды, ввод/вывод, аргументы, опции, код завершения и ошибки.

Собираемые данные

ПолеОписание
nameИмя команды
commandОбъект команды
inputСтрока ввода команды
outputВывод команды
exitCodeКод завершения процесса
errorСообщение об ошибке при неудаче команды
argumentsАргументы команды
optionsОпции команды

Схема данных

json
{
    "command": {
        "name": "app:import-users",
        "class": "App\\Command\\ImportUsersCommand",
        "input": "app:import-users --force",
        "output": "Imported 42 users.",
        "exitCode": 0,
        "error": null,
        "arguments": {},
        "options": {"force": true}
    }
}

Сводка (отображается в списке отладочных записей):

json
{
    "command": {
        "name": "app:import-users",
        "class": "App\\Command\\ImportUsersCommand",
        "input": "app:import-users --force",
        "exitCode": 0
    }
}

Контракт

php
use AppDevPanel\Kernel\Collector\Console\CommandCollector;

// Сбор из событий Symfony Console
$collector->collect(event: $consoleEvent);

// Или сбор необработанных данных команды
$collector->collectCommandData([
    'name' => 'app:import-users',
    'input' => 'app:import-users --force',
    'exitCode' => 0,
]);

Как это работает

Адаптеры фреймворков подключаются к жизненному циклу консольных событий:

  • Symfony: ConsoleCommandEvent, ConsoleTerminateEvent, ConsoleErrorEvent
  • Laravel: События команд Artisan
  • Yii 3: События консольного приложения

Панель отладки

  • Детали команды — имя, класс, ввод и код завершения
  • Захват вывода — полный вывод команды
  • Отображение ошибок — сообщение об ошибке и трассировка для неудачных команд

Выпущено под лицензией MIT.