shortUrlService = $shortUrlService; $this->previewGenerator = $previewGenerator; } protected function configure(): void { $this ->setName(self::NAME) ->setAliases(self::ALIASES) ->setDescription( '[DEPRECATED] Processes and generates the previews for every URL, improving performance for later web ' . 'requests.' ); } protected function execute(InputInterface $input, OutputInterface $output): ?int { $page = 1; do { $shortUrls = $this->shortUrlService->listShortUrls($page); $page += 1; foreach ($shortUrls as $shortUrl) { $this->processUrl($shortUrl->getLongUrl(), $output); } } while ($page <= $shortUrls->count()); (new SymfonyStyle($input, $output))->success('Finished processing all URLs'); return ExitCodes::EXIT_SUCCESS; } private function processUrl($url, OutputInterface $output): void { try { $output->write(sprintf('Processing URL %s...', $url)); $this->previewGenerator->generatePreview($url); $output->writeln(' Success!'); } catch (PreviewGenerationException $e) { $output->writeln(' Error'); if ($output->isVerbose()) { $this->getApplication()->renderThrowable($e, $output); } } } }