Новое в Symfony 2.8: Улучшенная консоль

  • 1 год назад

Теперь к столбцам в таблице можно применять стили

В Symfony 2.8 вы можете задавать индивидуальный визуальный стиль для каждого столбца таблицы.

Для начала инстанцируйте класс TableStyle, чтобы задать характеристики стиля:

use Symfony\Component\Console\Helper\TableStyle;

$rightAligned = new TableStyle();
$rightAligned->setPadType(STR_PAD_LEFT);
Затем примените индивидуальный стиль к любому столбцу таблицы при помощи цифрового индикатора этого столбца:

use Symfony\Component\Console\Helper\Table;

$table = new Table($output);
$table->setHeaders(['#', 'Path', 'Size']);

$table->setColumnStyle(2, $rightAligned);

// ...

$table->render();

В результате при визуализации таблицы содержимое третьего столбца (цифровой индикатор = 2) будет выровнено по правому краю:

+---+---------------------+---------+
| # | Path                |    Size |
+---+---------------------+---------+
| 1 | autoload.php        |     183 |
| 2 | ApplicationTest.php | 247,794 |
| 3 | CommandTest.php     |  14,965 |
| 4 | ListCommandTest.php |   2,369 |
+---+---------------------+---------+

Исключения теперь видны и в фоновом режиме

В некоторых средах принято выполнять команды консоли с опцией --quiet, чтобы результаты не выводились на экране. Однако проблема в том, что фоновый режим блокирует отображение результата даже в том случае, когда встречается исключение.

В Symfony 2.8 даже в фоновом режиме информация об исключениях всегда отображается, когда происходит подобная ошибка. Такая характеристика очень помогает разработчикам, а также соответствует нашей цели - сделать работу разработчика с консолью более удобной.

Добавлен новый индикатор состояния

Индикатор состояния позволяет создавать забавные анимированные индикаторы, отображающие ход выполнения задания. Они полезны, если вы заранее знаете, когда завершится выполнение задания, как в индикаторе загрузки в Symfony Installer.

Однако зачастую мы выполняем и те задачи, время окончания которых нам заранее не известно. Именно поэтому мы добавили новый индикатор состояния, который во время выполнения задания выводит на экран вращающуюся линию:

Помимо вращающейся линии, вы можете выводить сообщения, пока индикатор состояния активен:

use Symfony\Component\Console\Helper\ProgressIndicator;

$progress = new ProgressIndicator($output);
$progress->start('Starting...');

// do something ...
$progress->advance();

// do something ...
$progress->setMessage('Just started...');

// do something ...
$progress->setMessage('Half way...');

// do something ...
$progress->setMessage('Almost Done...');

// do something ...
$progress->finish('Done.');

У этого индикатор состояния есть еще одна прекрасная характеристика: он неторопливо спускается вниз, если система не поддерживает коды ANSI:

Комментарии

0