自定義輸出格式
ProgressBar::setFormatDefinition('minimal', '執行進度: %percent%%');
$progressBar = new ProgressBar($this->output, 3);
$progressBar->setFormat('minimal');
for($i=0;$i<3;$i++){
$progressBar->advance();
sleep(1);
}
顯示百分比、記憶體使用情況、任務剩餘時間、估計時間等
$progress = $this->output->createProgressBar(10);
$progress->setFormat('%percent%%');
for ($i=1;$i<10;$i++){
$progress->advance();
sleep(1);
}
$progress->setFormat('%percent%%'); 可以替換為你需要的操作
current
:當前步驟;max
: 最大步數(如果沒有定義最大值,則為 0);bar
:進度條本身;percent
:完成百分比(如果沒有定義最大值,則不可用);elapsed
: 從進度條開始經過的時間;remaining
:完成任務的剩餘時間(如果沒有定義max,則不可用);estimated
:完成任務的估計時間(如果沒有定義最大值,則不可用);memory
:當前記憶體使用情況;message
: 用於在進度條中顯示任意訊息。
重繪螢幕時間調整
出於效能原因,Symfony 每 100 毫秒重繪一次螢幕。如果應用程式來說太快或太慢,可以調整
$progressBar = new ProgressBar($output, 50000);
$progressBar->start();
$progressBar->setRedrawFrequency(100);
$progressBar->maxSecondsBetweenRedraws(0.2);
$progressBar->minSecondsBetweenRedraws(0.1);
本作品採用《CC 協議》,轉載必須註明作者和本文連結