self::class, 'services' => [ 'MessageCache' ], 'events' => [ PageRevisionUpdatedEvent::TYPE, PageDeletedEvent::TYPE ], ]; public function __construct( MessageCache $messageCache ) { $this->messageCache = $messageCache; } /** * Listener method for PageRevisionUpdatedEvent, to be registered with a DomainEventSource. * * @noinspection PhpUnused */ public function handlePageRevisionUpdatedEvent( PageRevisionUpdatedEvent $event ) { if ( $event->getPage()->getNamespace() === NS_MEDIAWIKI && ( $event->isModifiedSlot( SlotRecord::MAIN ) || $event->hasCause( PageRevisionUpdatedEvent::CAUSE_MOVE ) || $event->isReconciliationRequest() ) ) { $content = $event->getLatestRevisionAfter()->getMainContentRaw(); $this->messageCache->updateMessageOverride( $event->getPage(), $content ); } } /** * Listener method for PageDeletedEvent, to be registered with a DomainEventSource. * * @noinspection PhpUnused */ public function handlePageDeletedEvent( PageDeletedEvent $event ) { if ( $event->getDeletedPage()->getNamespace() === NS_MEDIAWIKI ) { $this->messageCache->updateMessageOverride( $event->getDeletedPage(), null ); } } }