gpt4 book ai didi

php - Symfony/控制台 : How to use multiple progress bars?

转载 作者:可可西里 更新时间:2023-11-01 00:02:01 24 4
gpt4 key购买 nike

我有一个用于 Symfony/Console 的命令,它使用 Guzzle Pool 一次下载多个文件.我已经让 Guzzle 报告了 download progress对于每个文件,都可以正常工作。

现在我想使用 ProgressBar helper 改进它来自 Symfony/Console。问题是我为 ProgressBar 找到的所有示例只使用一个进度条。我需要几个独立的进度条 - 每个下载一个。你能给我一些提示吗?

最佳答案

我在这里找到了一些东西:[Console] A better progress bar #10356

use Symfony\Component\Console\Helper\ProgressBar;
use Symfony\Component\Console\Output\ConsoleOutput;

$output = new ConsoleOutput();

$bar1 = new ProgressBar($output, 10);
$bar2 = new ProgressBar($output, 20);
$bar2->setProgressCharacter('#');
$bar1->start();
print "\n";
$bar2->start();

for ($i = 1; $i <= 20; $i++) {
// up one line
$output->write("\033[1A");
usleep(100000);
if ($i <= 10) {
$bar1->advance();
}
print "\n";
$bar2->advance();
}

效果:

ProgressBar

在更新栏之前,您必须将控制台光标移动到适当的行(向上和向下)。但它有效。我确认。

关于php - Symfony/控制台 : How to use multiple progress bars?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43424608/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com