使用方法一,發現有多少個進度就有多少個顯示,感覺有點奇怪,找了第二種,感覺更舒服些
方法一
public function handle()
{
$page = $this->argument('page') ?? 3;
$this->output->progressStart(100);
for ($i = 1; $i <= $page; $i++) {
$this->comment('正在快取' . $i . '頁');
//邏輯
$this->output->info($i . '頁' . '快取完畢');
if ($i == 3) {
$this->output->progressAdvance(34);
} else {
$this->output->progressAdvance(33);
}
}
$this->output->progressFinish();
$this->output->success('已經生成前三頁快取');
}
效果: 多個進度會有多個最新的進度條
方法二
public function handle()
{
$page = $this->argument('page') ?? 3;
$bar = $this->output->createProgressBar($page);
$bar->setBarCharacter('<comment>=</comment>');
$bar->setEmptyBarCharacter(' ');
$bar->setProgressCharacter('|');
$bar->setBarWidth(50);
for ($i = 1; $i <= $page; $i++) {
$bar->advance();
//業務邏輯
$this->output->success('已經生成前' . $page . '頁快取');
}
}
效果: 會使用1個命令列實時更新進度
本作品採用《CC 協議》,轉載必須註明作者和本文連結