self::class, 'services' => [], 'events' => [ PageRevisionUpdatedEvent::TYPE, PageDeletedEvent::TYPE, ], ]; /** * Listener method for PageRevisionUpdatedEvent, to be registered with a DomainEventSource. * * @noinspection PhpUnused */ public function handlePageRevisionUpdatedEvent( PageRevisionUpdatedEvent $event ) { $newRevision = $event->getLatestRevisionAfter(); $mainSlot = $newRevision->isDeleted( RevisionRecord::DELETED_TEXT ) ? null : $newRevision->getSlot( SlotRecord::MAIN ); if ( $event->isModifiedSlot( SlotRecord::MAIN ) || $event->hasCause( PageRevisionUpdatedEvent::CAUSE_MOVE ) || $event->isReconciliationRequest() ) { $update = new SearchUpdate( $event->getPageId(), $event->getPageRecordAfter(), $mainSlot ? $mainSlot->getContent() : null ); $update->doUpdate(); } } /** * Listener method for PageDeletedEvent, to be registered with a DomainEventSource. * * @noinspection PhpUnused */ public function handlePageDeletedEvent( PageDeletedEvent $event ) { $update = new SearchUpdate( $event->getPageId(), $event->getDeletedPage(), null ); $update->doUpdate(); } }