Новое в Symfony 7.2: Индикатор завершения работы консоли
Компонент Console стал стандартным способом создания CLI-команд и PHP приложений. Его используют более 11 000 проектов с открытым исходным кодом, а количество загрузок с момента его выхода в октябре 2011 года приблизилось к 1 миллиарду.
Такие надёжные и зрелые компоненты, как этот, уже не добавляют революционных новых возможностей, но в каждой версии Symfony мы улучшаем их, внося небольшие изменения в качество жизни и DX (опыт разработчиков).
В Symfony 7.2 мы улучшили компонент Console, чтобы можно было настраивать индикатор завершения. Если вы используете индикатор выполнения, сообщающий пользователю, что компонент не остановлен, то по умолчанию вы видите вращающийся текстовый спиннер:
Вы можете настроить индикатор выполнения с помощью собственного спиннера или анимации. Основная проблема заключается в том, что по завершении работы команды отображается последний использованный индикатор выполнения, который может меняться при каждом запуске команды. Такое несоответствие конечного результата часто бывает не самым лучшим.
В Symfony 7.2 мы улучшаем эту ситуацию, показывая ✔ в качестве индикатора завершения:
Вы можете полностью кастомизировать это значение с помощью новой опции finishedIndicatorValue
. Например, можно показывать разные индикаторы в зависимости от результата выполнения команды:
use Symfony\Component\Console\Helper\ProgressIndicator;
// ...
$progressIndicator = new ProgressIndicator($output, finishedIndicatorValue: '🎉');
try {
/* здесь выполняется какая-то работа... */
$progressIndicator->finish('Finished');
} catch (\Exception) {
$progressIndicator->finish('Failed', '🚨');
}
А вот как это выглядит после успешного выполнения команды: