У меня есть этот пример того, как использовать Symfony progress bar
помощник
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();
}
Теперь, в приведенном выше примере, я смог заранее знать общее количество customers
, которое будет экспортировать, используя count(customers)
в качестве второго аргумента progress bar
.
Теперь я создаю сценарий, который должен был загрузить удаленный файл, и я понятия не имею, сколько времени это займет или какие шаги нужно предпринять, чтобы завершить загрузку.
У меня вопрос, как Могу ли я создать такой сценарий, если я заранее не знаю, сколько шагов будет предпринято?
Примечание: все примеры, которые я видел здесь и в других местах, редко (если вообще) упоминают, что