Компонент 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();
Шаг, кажется, записывает что-то для вывода, что заставляет панель перерисовываться на каждом шаге.