vendor/massive/search-bundle/Search/EventSubscriber/PurgeSubscriber.php line 41

Open in your IDE?
  1. <?php
  2. /*
  3.  * This file is part of the MassiveSearchBundle
  4.  *
  5.  * (c) MASSIVE ART WebServices GmbH
  6.  *
  7.  * This source file is subject to the MIT license that is bundled
  8.  * with this source code in the file LICENSE.
  9.  */
  10. namespace Massive\Bundle\SearchBundle\Search\EventSubscriber;
  11. use Massive\Bundle\SearchBundle\Search\Event\IndexRebuildEvent;
  12. use Massive\Bundle\SearchBundle\Search\SearchEvents;
  13. use Massive\Bundle\SearchBundle\Search\SearchManagerInterface;
  14. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  15. class PurgeSubscriber implements EventSubscriberInterface
  16. {
  17.     /**
  18.      * @var SearchManagerInterface
  19.      */
  20.     private $searchManager;
  21.     public function __construct(SearchManagerInterface $searchManager)
  22.     {
  23.         $this->searchManager $searchManager;
  24.     }
  25.     public static function getSubscribedEvents()
  26.     {
  27.         return [
  28.             SearchEvents::INDEX_REBUILD => ['purgeIndexes'500],
  29.         ];
  30.     }
  31.     /**
  32.      * Purges all indexes, if the purge option is set.
  33.      */
  34.     public function purgeIndexes(IndexRebuildEvent $event)
  35.     {
  36.         if (!$event->getPurge()) {
  37.             return;
  38.         }
  39.         foreach ($this->searchManager->getIndexNames() as $indexName) {
  40.             $event->getOutput()->writeln('<info>Purging index</info>: ' $indexName);
  41.             $this->searchManager->purge($indexName);
  42.         }
  43.     }
  44. }