/** * Validates the class name of event item and prepares internal document for persistence operation. * * @param ItemPipelineEvent $event * * @return bool */ protected function setItem(ItemPipelineEvent $event) { /** @var AbstractImportItem $tempItem */ $tempItem = $event->getItem(); if (!$tempItem instanceof $this->importItemClass) { $this->log("Item provided is not an {$this->importItemClass}", LogLevel::ERROR); return false; } $this->importItem = $tempItem; return true; }
/** * Modify event. * * @param ItemPipelineEvent $event */ public function onModify(ItemPipelineEvent $event) { $item = $event->getItem(); if ($item instanceof ImportItem) { $this->modify($item, $event); } elseif ($item instanceof SyncExecuteItem) { $syncStorageData = $item->getSyncStorageData(); if ($syncStorageData['type'] !== ActionTypes::DELETE) { $this->modify($item, $event); } else { ItemSkipper::skip($event, 'Delete item with id = ' . $syncStorageData['id']); } } else { $this->log('The type of provided item is not ImportItem or SyncExecuteItem.', LogLevel::ERROR); } }
/** * OnModify. * * @param ItemPipelineEvent $event */ public function onModify(ItemPipelineEvent $event) { if ($event->getItem() == 'skip') { ItemSkipper::skip($event, 'Test reason for skip'); } }
/** * Pipeline consume event listener. * * @param ItemPipelineEvent $event */ public function consume(ItemPipelineEvent $event) { $this->invalidateItem($event->getItem(), $event->getContext()); }
/** * Consumes given event. * * @param ItemPipelineEvent $event */ public function consume(ItemPipelineEvent $event) { $this->extractor->extract($event->getItem()); }
/** * Events onModify action. * * @param ItemPipelineEvent $documentEvent */ public function onModify(ItemPipelineEvent $documentEvent) { $this->processData($documentEvent->getItem()); }