您可以通过以下方式在命令中显示进度条:
use Symfony\Component\Console\Helper\ProgressBar;
$progress = new ProgressBar($output, 50);
$progress->start();
$i = 0;
while ($i++ < 50) {
$progress->advance();
}
$progress->finish()
但是如果命令中只有一个调用服务怎么办:
// command file
$this->getContainer()->get('update.product.countries')->update();
// service file
public function update()
{
$validCountryCodes = $this->countryRepository->findAll();
$products = $this->productRepository->findWithInvalidCountryCode($validCountryCodes);
foreach ($products as $product) {
...
}
}
有没有办法以类似命令文件的方式输出服务 foreach 循环中的进度?