I have this example of how to use the Symfony progress bar
helper
protected function execute(InputInterface $input, OutputInterface $output)
{
// Fake data source
$customers = [
['John Doe', 'john.doe@mail.loc', '1983-01-16'],
['Samantha Smith', 'samantha.smith@mail.loc', '1986-10-23'],
['Robert Black', 'robert.black@mail.loc', '1978-11-18'],
];
// Progress Bar Helper
$progress = new
\Symfony\Component\Console\Helper\ProgressBar($output,
count($customers));
$progress->start();
for ($i = 1; $i <= count($customers); $i++) {
sleep(5);
$progress->advance();
}
$progress->finish();
// Table Helper
$table = new \Symfony\Component\Console\Helper\Table($output);
$table->setHeaders(['Name', 'Email', 'DON'])
->setRows($customers)
->render();
}
Now, in the above example I gave, I was able to know in advance the total number of customers
that will be export by using count(customers)
as the 2nd argument of the progress bar
.
Now, am creating a script that needed to download remote file which I have no idea how long it will take or the steps it will take before download will be complete.
My question is how can I create such script if I don't know in advance the number of steps that will be taking before hand?
NB: All examples I saw here and other places rarely(if at all) mention that