РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1288 of 1361 menu

Метод progressStart

Метод progressStart класса SymfonyStyle запускает прогресс-бар - визуальный индикатор выполнения длительной операции в консоли. Первым параметром передаётся максимальное количество шагов. Вторым необязательным параметром задаётся формат вывода прогресса. После вызова метода необходимо продвигать прогресс методом progressAdvance и завершать его методом progressFinish.

Синтаксис

public function progressStart(int $max = 0): void

Пример

Давайте создадим команду, которая запускает прогресс-бар на 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(100); for ($i = 0; $i < 100; $i++) { $io->progressAdvance(); } $io->progressFinish(); return Command::SUCCESS; } } ?>

Результат выполнения команды:

100/100 [============================] 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); for ($i = 0; $i < 5; $i++) { $io->progressAdvance(2); } $io->progressFinish(); return Command::SUCCESS; } } ?>

Результат выполнения команды:

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); $items = ['article', 'user', 'hello', 'abcde']; $total = count($items); $io->progressStart($total); foreach ($items as $item) { $io->progressAdvance(); } $io->progressFinish(); $io->success('Done'); return Command::SUCCESS; } } ?>

Результат выполнения команды:

4/4 [============================] 100% [OK] Done

Смотрите также

  • класс SymfonyStyle,
    который предоставляет методы для красивого вывода в консоль
  • метод progressAdvance,
    который продвигает прогресс-бар на заданное число шагов
  • метод progressFinish,
    который завершает отображение прогресс-бара
  • метод createProgressBar,
    который создаёт объект прогресс-бара вручную
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить