From 98feb3f3fd29b32c141a20b643b5f86b5f6e4c8e Mon Sep 17 00:00:00 2001 From: Fomafix Date: Sun, 17 Mar 2024 20:10:34 +0000 Subject: [PATCH] Inject service RevisionStore into RevisionLocalCache Change-Id: I4945d582138af4500f8c6929ca0c97d05f10377e --- ServiceWiring.php | 3 ++- includes/Cache/RevisionLocalCache.php | 15 ++++++++++----- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/ServiceWiring.php b/ServiceWiring.php index 098ff7806..71ea35568 100644 --- a/ServiceWiring.php +++ b/ServiceWiring.php @@ -96,7 +96,8 @@ return [ 'EchoRevisionLocalCache' => static function ( MediaWikiServices $services ): RevisionLocalCache { return new RevisionLocalCache( - $services->getConnectionProvider() + $services->getConnectionProvider(), + $services->getRevisionStore() ); } diff --git a/includes/Cache/RevisionLocalCache.php b/includes/Cache/RevisionLocalCache.php index c9b28e0a7..eae77eae1 100644 --- a/includes/Cache/RevisionLocalCache.php +++ b/includes/Cache/RevisionLocalCache.php @@ -2,7 +2,7 @@ namespace MediaWiki\Extension\Notifications\Cache; -use MediaWiki\MediaWikiServices; +use MediaWiki\Revision\RevisionStore; use Wikimedia\Rdbms\IConnectionProvider; /** @@ -11,22 +11,27 @@ use Wikimedia\Rdbms\IConnectionProvider; */ class RevisionLocalCache extends LocalCache { private IConnectionProvider $dbProvider; + private RevisionStore $revisionStore; /** * @param IConnectionProvider $dbProvider + * @param RevisionStore $revisionStore */ - public function __construct( IConnectionProvider $dbProvider ) { + public function __construct( + IConnectionProvider $dbProvider, + RevisionStore $revisionStore + ) { parent::__construct(); $this->dbProvider = $dbProvider; + $this->revisionStore = $revisionStore; } /** * @inheritDoc */ protected function resolve( array $lookups ) { - $store = MediaWikiServices::getInstance()->getRevisionStore(); $dbr = $this->dbProvider->getReplicaDatabase(); - $revQuery = $store->getQueryInfo( [ 'page', 'user' ] ); + $revQuery = $this->revisionStore->getQueryInfo( [ 'page', 'user' ] ); $res = $dbr->select( $revQuery['tables'], $revQuery['fields'], @@ -36,7 +41,7 @@ class RevisionLocalCache extends LocalCache { $revQuery['joins'] ); foreach ( $res as $row ) { - yield $row->rev_id => $store->newRevisionFromRow( $row ); + yield $row->rev_id => $this->revisionStore->newRevisionFromRow( $row ); } } }