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

Метод createProgressBar

Метод createProgressBar класса SymfonyStyle создаёт и возвращает объект ProgressBar, который используется для визуального отображения прогресса выполнения длительной операции в консольной команде. Метод не принимает обязательных параметров. Если передать первым параметром целое число, оно задаст максимальное количество шагов прогресс-бара. Если параметр не передан, прогресс-бар будет работать в бесконечном режиме до явного вызова метода finish.

Синтаксис

public function createProgressBar(int $max = 0): ProgressBar

Пример

Давайте создадим простую консольную команду, которая выводит прогресс-бар на пять шагов и продвигает его в цикле:

<?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); $progressBar = $io->createProgressBar(5); $progressBar->start(); for ($i = 1; $i <= 5; $i++) { $progressBar->advance(); } $progressBar->finish(); $io->newLine(); return Command::SUCCESS; } } ?>

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

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); $items = ['article', 'user', 'hello', 'abcde']; $progressBar = $io->createProgressBar(count($items)); $progressBar->start(); foreach ($items as $item) { $progressBar->advance(); } $progressBar->finish(); $io->newLine(); $io->success('Done'); return Command::SUCCESS; } } ?>

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

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

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

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