entityManager = $entityManager; $this->entryRepository = $entryRepository; $this->wallabagUrl = $wallabagUrl; parent::__construct(); } protected function configure() { $this ->setName('wallabag:update-pictures-path') ->setDescription('Update the path of the pictures for each entry when you changed your wallabag instance URL.') ->addArgument( 'old-url', InputArgument::REQUIRED, 'URL to replace' ); } protected function execute(InputInterface $input, OutputInterface $output) { $io = new SymfonyStyle($input, $output); $oldUrl = $input->getArgument('old-url'); $query = $this->entryRepository->createQueryBuilder('e')->getQuery(); $io->text('Retrieve existing entries'); $i = 1; foreach ($query->toIterable() as $entry) { $content = str_replace($oldUrl, $this->wallabagUrl, $entry->getContent()); $entry->setContent($content); $previewPicture = str_replace($oldUrl, $this->wallabagUrl, $entry->getPreviewPicture()); $entry->setPreviewPicture($previewPicture); if (0 === ($i % 20)) { $this->entityManager->flush(); } ++$i; } $this->entityManager->flush(); $io->success('Finished updating.'); return 0; } }