vendor/elements/omnisearch-bundle/src/Event/IndexEventListener.php line 50

Open in your IDE?
  1. <?php
  2. namespace Elements\Bundle\OmnisearchBundle\Event;
  3. use Elements\Bundle\OmnisearchBundle\ElasticSearchItem\IndexUpdater;
  4. use Pimcore\Event\Model\DataObjectEvent;
  5. use Elements\Bundle\OmnisearchBundle\ElasticSearchItem\IElasticSearchItem;
  6. class IndexEventListener implements IndexEventListenerInterface {
  7.     /**
  8.      * @var IndexUpdater
  9.      */
  10.     private $indexUpdater null;
  11.     public function __construct(IndexUpdater $indexUpdater) {
  12.         $this->setIndexUpdater($indexUpdater);
  13.     }
  14.     /**
  15.      * @return IndexUpdater
  16.      */
  17.     public function getIndexUpdater(): IndexUpdater {
  18.         return $this->indexUpdater;
  19.     }
  20.     /**
  21.      * @param IndexUpdater $indexUpdater
  22.      */
  23.     public function setIndexUpdater(IndexUpdater $indexUpdater) {
  24.         $this->indexUpdater $indexUpdater;
  25.     }
  26.     /**
  27.      * @inheritDoc
  28.      */
  29.     public function onPostModify(DataObjectEvent $event) {
  30.         $dataObject $event->getObject();
  31.         if($dataObject instanceof IElasticSearchItem) {
  32.             if($dataObject->esGetAutomaticUpdateOnSave()) {
  33.                 $this->getIndexUpdater()->updateIndexForItem($dataObject);
  34.             }
  35.         }
  36.     }
  37.     /**
  38.      * @inheritDoc
  39.      */
  40.     public function onPostDelete(DataObjectEvent $event) {
  41.         $dataObject $event->getObject();
  42.         if($dataObject instanceof IElasticSearchItem) {
  43.             $this->getIndexUpdater()->deleteItemFromIndex($dataObject);
  44.         }
  45.     }
  46. }