Метод progressAdvance
Метод progressAdvance класса SymfonyStyle
увеличивает текущее значение прогресс-бара на указанное
число шагов. Первым параметром передаётся количество
шагов, на которое нужно продвинуть прогресс. Если параметр
не указан, прогресс продвигается на один шаг вперёд.
Метод работает только после запуска прогресс-бара через
progressStart.
Синтаксис
progressAdvance(int $step = 1)
Пример
Давайте создадим команду, которая запускает прогресс-бар и продвигает его на один шаг в цикле:
<?php
namespace AppCommand;
use SymfonyComponentConsoleCommandCommand;
use SymfonyComponentConsoleInputInputInterface;
use SymfonyComponentConsoleOutputOutputInterface;
use SymfonyComponentConsoleStyleSymfonyStyle;
class ProgressCommand extends Command
{
protected static $defaultName = 'app:progress';
protected function execute(InputInterface $input, OutputInterface $output): int
{
$io = new SymfonyStyle($input, $output);
$io->progressStart(5);
for ($i = 0; $i < 5; $i++) {
$io->progressAdvance();
}
$io->progressFinish();
return Command::SUCCESS;
}
}
?>
Результат выполнения команды php bin/console app:progress:
5/5 [============================] 100%
Пример
Давайте продвинем прогресс-бар сразу на несколько шагов, передав количество в параметре:
<?php
namespace AppCommand;
use SymfonyComponentConsoleCommandCommand;
use SymfonyComponentConsoleInputInputInterface;
use SymfonyComponentConsoleOutputOutputInterface;
use SymfonyComponentConsoleStyleSymfonyStyle;
class ProgressCommand extends Command
{
protected static $defaultName = 'app:progress';
protected function execute(InputInterface $input, OutputInterface $output): int
{
$io = new SymfonyStyle($input, $output);
$io->progressStart(10);
$io->progressAdvance(3);
$io->progressAdvance(3);
$io->progressAdvance(4);
$io->progressFinish();
return Command::SUCCESS;
}
}
?>
Результат выполнения команды php bin/console app:progress:
10/10 [============================] 100%
Пример
Давайте выведем промежуточное состояние прогресса, продвигая его на один шаг за раз:
<?php
namespace AppCommand;
use SymfonyComponentConsoleCommandCommand;
use SymfonyComponentConsoleInputInputInterface;
use SymfonyComponentConsoleOutputOutputInterface;
use SymfonyComponentConsoleStyleSymfonyStyle;
class ProgressCommand extends Command
{
protected static $defaultName = 'app:progress';
protected function execute(InputInterface $input, OutputInterface $output): int
{
$io = new SymfonyStyle($input, $output);
$io->progressStart(3);
$io->progressAdvance();
$io->progressAdvance();
$io->progressFinish();
return Command::SUCCESS;
}
}
?>
Результат выполнения команды php bin/console app:progress:
3/3 [============================] 100%
Смотрите также
-
метод
progressStart,
который запускает прогресс-бар -
метод
progressFinish,
который завершает прогресс-бар -
метод
createProgressBar,
который создаёт объект прогресс-бара -
класс
SymfonyStyle,
который предоставляет методы для вывода в консоль