Beispiel #1
0
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $pageIdentifiers = array();
     if ($input->hasOption('pageid')) {
         foreach ($input->getOption('pageid') as $pageId) {
             $pageIdentifiers[] = new PageIdentifier(null, (int) $pageId);
         }
     } elseif ($input->hasOption('title')) {
         foreach ($input->getOption('title') as $title) {
             $pageIdentifiers[] = new PageIdentifier(new Title($title));
         }
     } else {
         throw new \RuntimeException('No titles or pageids were set!');
     }
     $wiki = $input->getOption('wiki');
     $wikiDetails = $this->appConfig->offsetGet('wikis.' . $wiki);
     $api = new MediawikiApi($wikiDetails['url']);
     $mwFactory = new MediawikiFactory($api);
     $purger = $mwFactory->newPagePurger();
     /** @var PageIdentifier $identifier */
     foreach ($pageIdentifiers as $identifier) {
         if ($identifier->getId() != null) {
             $output->writeln('Purging page with id ' . $identifier->getId());
         } elseif ($identifier->getTitle() != null) {
             $output->writeln('Purging page with title ' . $identifier->getTitle()->getText());
         }
         $purger->purge(new Page($identifier));
     }
     $output->writeln('Done');
 }