vendor/shopware/core/Framework/DataAbstractionLayer/Command/ConsoleProgressTrait.php line 48
<?php declare(strict_types=1);namespace Shopware\Core\Framework\DataAbstractionLayer\Command;use Shopware\Core\Framework\Event\ProgressAdvancedEvent;use Shopware\Core\Framework\Event\ProgressFinishedEvent;use Shopware\Core\Framework\Event\ProgressStartedEvent;use Shopware\Core\Framework\Log\Package;use Symfony\Component\Console\Helper\ProgressBar;use Symfony\Component\Console\Style\SymfonyStyle;#[Package('core')]trait ConsoleProgressTrait{/*** @var SymfonyStyle|null*/protected $io;/*** @var ProgressBar|null*/protected $progress;/*** @return array<string, string>*/public static function getSubscribedEvents(): array{return [ProgressStartedEvent::NAME => 'startProgress',ProgressAdvancedEvent::NAME => 'advanceProgress',ProgressFinishedEvent::NAME => 'finishProgress',];}public function startProgress(ProgressStartedEvent $event): void{if (!$this->io) {return;}$this->progress = $this->io->createProgressBar($event->getTotal());$this->progress->setFormat("<info>[%message%]</info>\n%current%/%max% [%bar%] %percent:3s%% %elapsed:6s%/%estimated:-6s% %memory:6s%");$this->progress->setMessage($event->getMessage());}public function advanceProgress(ProgressAdvancedEvent $event): void{if (!$this->progress) {return;}$this->progress->advance($event->getStep());}public function finishProgress(ProgressFinishedEvent $event): void{if (!$this->io) {return;}if (!$this->progress) {return;}if (!$this->progress->getMaxSteps()) {return;}$this->progress->setMessage($event->getMessage());$this->progress->finish();$this->io->newLine(2);}}