Давеча писал cli приложение на php, использовал symfony/console Очень понравился класс ConsoleOutput из этой библиотеки. Класс вывода в консоль, умеет по разному выводить в консоль.
use Symfony\Component\Console\Output\ConsoleOutput;
$consoleOutput = new ConsoleOutput();
Типичный вывод
$consoleOutput->write('Сообщение без перехода на новую строку');
$consoleOutput->writeln('Сообщение c переходом на новую строку');
$consoleOutput->write('<info>Сообщение зеленого цвета</info>');
$consoleOutput->write('<error>Сообщение на красном фоне</error>');
Можно добавить свои стили
use Symfony\Component\Console\Output\ConsoleOutput;
use Symfony\Component\Console\Formatter\OutputFormatterStyle;
....
$consoleOutput = new ConsoleOutput();
$outputStyle = new OutputFormatterStyle('blue', 'red'); //Синим по красному
$consoleOutput->getFormatter()->setStyle('blue-on-red', $outputStyle);
....
$consoleOutput->write('<blue-on-red>Синим по красному</blue-on-red>');
Вывод можно разбить на части, например сверху информация о текущем процессе, снизу статистика
$logSection = $consoleOutput->section();
$statisticSection = $consoleOutput->section();
$iteratoration = 0;
while(true){
$logSection->writeln('Итерация ' . $iteratoration);
if ($iteratoration % 1000 === 0) {
// Последняя строка в консоле будет обновляться
$statisticSection->overwrite(($iteratoration / 1000) . ' тысяч итераций');
}
$iterator++;
}
Последняя строка в консоле будет показывать сколько тысяч итераций прошло, а сообщения об итерациях будет "спамить" вверх
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».