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. }