From d1e7660f1c62cccfddd4ec211fed5ed1d12bc624 Mon Sep 17 00:00:00 2001 From: daniel Date: Sun, 1 Sep 2024 13:49:27 +0200 Subject: DomainEventEmitter: migrate logic from DerivedDataUpdater Migrates the following updates from DerivedDataUpdater to ServiceWiring: - SearchUpdate - MessageCache Bug: T378936 Change-Id: Ice7651900423e25f8c907c9f4c5e47085ef9edf0 --- includes/search/SearchEventIngress.php | 54 ++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 includes/search/SearchEventIngress.php (limited to 'includes/search') diff --git a/includes/search/SearchEventIngress.php b/includes/search/SearchEventIngress.php new file mode 100644 index 000000000000..fb275299c0c4 --- /dev/null +++ b/includes/search/SearchEventIngress.php @@ -0,0 +1,54 @@ + self::class, + 'services' => [], + 'events' => [ + PageUpdatedEvent::TYPE + ], + ]; + + /** + * Listener method for PageUpdatedEvent, to be registered with a DomainEventSource. + * + * @noinspection PhpUnused + */ + public function handlePageUpdatedEventAfterCommit( PageUpdatedEvent $event ) { + $newRevision = $event->getNewRevision(); + $mainSlot = $newRevision->getSlot( SlotRecord::MAIN ); + if ( + !$mainSlot->isInherited() && + !$newRevision->isDeleted( RevisionRecord::DELETED_TEXT ) + ) { + // NOTE: no need to go through DeferredUpdates, + // we are already deferred. + $update = new SearchUpdate( + $event->getPage()->getId(), + $event->getPage(), + $mainSlot->getContent() + ); + + // No need to schedule a DeferredUpdate, listeners use deferred + // delivery anyway. + $update->doUpdate(); + } + } + +} -- cgit v1.2.3