Компонент ProgressBar консоли Symfony не отображается в скриптах композитора

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

Почему это? Есть ли способ обеспечить его рендеринг?


Обновление: теперь (начиная с обновления до symfony 2.6) оно отображается, но обновление консоли не работает правильно, и для каждого обновления добавляется новая строка...

1 ответ

Решение

Убедитесь, что вы используете актуальную версию компонента. Проверьте правильность работы панели с помощью следующего фрагмента:

<?php
$max=10;
$progress = new ProgressBar($output, $max);
$progress->start();

for ($i = 0; $i <= $max; ++$i) {
 sleep(1);
 $progress->advance();
}
$progress->finish();

Если это так, то задача, которую вы выполняете между $progress->advance(); Шаг, кажется, записывает что-то для вывода, что заставляет панель перерисовываться на каждом шаге.

Другие вопросы по тегам