rdbms: Add ConnectionProvider service alias

Reduce mental burden by exposing LBFactory also as
$services->getConnectionProvider, since it's encouraged to
type-hint this as IConnectionProvider whenever possible, this is
both more intuitive and more future-proof.

Also replace occurences in ServiceWiring where the receiving parameter
was already typehinted as IConnectionProvider.

Change-Id: I557dad3c985a1b2c43743e6b75cae57ce37d1785
This commit is contained in:
Gergő Tisza 2024-01-12 23:50:18 -08:00 committed by Krinkle
parent 9ba2b79a5b
commit 8604c384f6
2 changed files with 37 additions and 23 deletions

View file

@ -211,6 +211,7 @@ use Wikimedia\Parsoid\Config\SiteConfig;
use Wikimedia\Rdbms\ChronologyProtector;
use Wikimedia\Rdbms\ConfiguredReadOnlyMode;
use Wikimedia\Rdbms\DatabaseFactory;
use Wikimedia\Rdbms\IConnectionProvider;
use Wikimedia\Rdbms\ILoadBalancer;
use Wikimedia\Rdbms\LBFactory;
use Wikimedia\Rdbms\LBFactorySingle;
@ -941,6 +942,13 @@ class MediaWikiServices extends ServiceContainer {
return $this->getService( 'ConfiguredReadOnlyMode' );
}
/**
* @since 1.42
*/
public function getConnectionProvider(): IConnectionProvider {
return $this->getService( 'ConnectionProvider' );
}
/**
* @since 1.35
*/
@ -1042,6 +1050,7 @@ class MediaWikiServices extends ServiceContainer {
/**
* @since 1.28
* @note When possible, use {@link getConnectionProvider()} instead.
*/
public function getDBLoadBalancerFactory(): LBFactory {
return $this->getService( 'DBLoadBalancerFactory' );

View file

@ -240,6 +240,7 @@ use Wikimedia\Parsoid\Parsoid;
use Wikimedia\Rdbms\ChronologyProtector;
use Wikimedia\Rdbms\ConfiguredReadOnlyMode;
use Wikimedia\Rdbms\DatabaseFactory;
use Wikimedia\Rdbms\IConnectionProvider;
use Wikimedia\Rdbms\ReadOnlyMode;
use Wikimedia\RequestTimeout\CriticalSectionProvider;
use Wikimedia\RequestTimeout\RequestTimeout;
@ -288,7 +289,7 @@ return [
'ArchivedRevisionLookup' => static function ( MediaWikiServices $services ): ArchivedRevisionLookup {
return new ArchivedRevisionLookup(
$services->getDBLoadBalancerFactory(),
$services->getConnectionProvider(),
$services->getRevisionStore()
);
},
@ -334,7 +335,7 @@ return [
$services->getLinksMigration(),
$services->getMainWANObjectCache(),
$services->getHookContainer(),
$services->getDBLoadBalancerFactory()
$services->getConnectionProvider()
);
},
@ -462,7 +463,7 @@ return [
'ChangeTagsStore' => static function ( MediaWikiServices $services ): ChangeTagsStore {
return new ChangeTagsStore(
$services->getDBLoadBalancerFactory(),
$services->getConnectionProvider(),
$services->getChangeTagDefStore(),
$services->getMainWANObjectCache(),
$services->getHookContainer(),
@ -582,6 +583,10 @@ return [
);
},
'ConnectionProvider' => static function ( MediaWikiServices $services ): IConnectionProvider {
return $services->getDBLoadBalancerFactory();
},
'ContentHandlerFactory' => static function ( MediaWikiServices $services ): IContentHandlerFactory {
$contentHandlerConfig = $services->getMainConfig()->get( MainConfigNames::ContentHandlers );
@ -620,7 +625,7 @@ return [
$services->getLinkRendererFactory(),
$services->getLinkBatchFactory(),
$services->getHookContainer(),
$services->getDBLoadBalancerFactory(),
$services->getConnectionProvider(),
$services->getNamespaceInfo(),
$services->getCommentFormatter()
);
@ -969,7 +974,7 @@ return [
$services->getContentLanguage(),
$services->getMainWANObjectCache(),
$services->getHookContainer(),
$services->getDBLoadBalancerFactory()
$services->getConnectionProvider()
);
},
@ -1075,7 +1080,7 @@ return [
$services->getTitleFormatter(),
$services->getContentLanguage(),
$services->getGenderCache(),
$services->getDBLoadBalancerFactory(),
$services->getConnectionProvider(),
$services->getLinksMigration(),
LoggerFactory::getInstance( 'LinkBatch' )
);
@ -1118,7 +1123,7 @@ return [
'LinkTargetLookup' => static function ( MediaWikiServices $services ): LinkTargetLookup {
return new LinkTargetStore(
$services->getDBLoadBalancerFactory(),
$services->getConnectionProvider(),
$services->getLocalServerObjectCache(),
$services->getMainWANObjectCache()
);
@ -1378,7 +1383,7 @@ return [
return new ImportableOldRevisionImporter(
true,
LoggerFactory::getInstance( 'OldRevisionImporter' ),
$services->getDBLoadBalancerFactory(),
$services->getConnectionProvider(),
$services->getRevisionStore(),
$services->getSlotRoleRegistry(),
$services->getWikiPageFactory(),
@ -1390,7 +1395,7 @@ return [
'PageEditStash' => static function ( MediaWikiServices $services ): PageEditStash {
return new PageEditStash(
ObjectCache::getLocalClusterInstance(),
$services->getDBLoadBalancerFactory(),
$services->getConnectionProvider(),
LoggerFactory::getInstance( 'StashEdit' ),
$services->getStatsdDataFactory(),
$services->getUserEditTracker(),
@ -1406,7 +1411,7 @@ return [
'PageProps' => static function ( MediaWikiServices $services ): PageProps {
return new PageProps(
$services->getLinkBatchFactory(),
$services->getDBLoadBalancerFactory()
$services->getConnectionProvider()
);
},
@ -1452,7 +1457,7 @@ return [
): PageUpdaterFactory {
$editResultCache = new EditResultCache(
$services->getMainObjectStash(),
$services->getDBLoadBalancerFactory(),
$services->getConnectionProvider(),
new ServiceOptions(
EditResultCache::CONSTRUCTOR_OPTIONS,
$services->getMainConfig()
@ -1671,7 +1676,7 @@ return [
LoggerFactory::getInstance( 'authentication' ),
$services->getAuthManager(),
$services->getHookContainer(),
$services->getDBLoadBalancerFactory(),
$services->getConnectionProvider(),
$services->getUserFactory(),
$services->getUserNameUtils(),
$services->getUserOptionsLookup()
@ -1712,7 +1717,7 @@ return [
'Pingback' => static function ( MediaWikiServices $services ): Pingback {
return new Pingback(
$services->getMainConfig(),
$services->getDBLoadBalancerFactory(),
$services->getConnectionProvider(),
ObjectCache::getLocalClusterInstance(),
$services->getHttpRequestFactory(),
LoggerFactory::getInstance( 'Pingback' )
@ -1896,7 +1901,7 @@ return [
'RevertedTagUpdateManager' => static function ( MediaWikiServices $services ): RevertedTagUpdateManager {
$editResultCache = new EditResultCache(
$services->getMainObjectStash(),
$services->getDBLoadBalancerFactory(),
$services->getConnectionProvider(),
new ServiceOptions(
EditResultCache::CONSTRUCTOR_OPTIONS,
$services->getMainConfig()
@ -1978,7 +1983,7 @@ return [
return new SearchEngineFactory(
$services->getSearchEngineConfig(),
$services->getHookContainer(),
$services->getDBLoadBalancerFactory()
$services->getConnectionProvider()
);
},
@ -2046,7 +2051,7 @@ return [
},
'SiteStore' => static function ( MediaWikiServices $services ): SiteStore {
$rawSiteStore = new DBSiteStore( $services->getDBLoadBalancerFactory() );
$rawSiteStore = new DBSiteStore( $services->getConnectionProvider() );
$cache = $services->getLocalServerObjectCache();
if ( $cache instanceof EmptyBagOStuff ) {
@ -2182,7 +2187,7 @@ return [
new ServiceOptions(
TalkPageNotificationManager::CONSTRUCTOR_OPTIONS, $services->getMainConfig()
),
$services->getDBLoadBalancerFactory(),
$services->getConnectionProvider(),
$services->getReadOnlyMode(),
$services->getRevisionLookup(),
$services->getHookContainer(),
@ -2305,7 +2310,7 @@ return [
'UserCache' => static function ( MediaWikiServices $services ): UserCache {
return new UserCache(
LoggerFactory::getInstance( 'UserCache' ),
$services->getDBLoadBalancerFactory(),
$services->getConnectionProvider(),
$services->getLinkBatchFactory()
);
},
@ -2313,7 +2318,7 @@ return [
'UserEditTracker' => static function ( MediaWikiServices $services ): UserEditTracker {
return new UserEditTracker(
$services->getActorMigration(),
$services->getDBLoadBalancerFactory(),
$services->getConnectionProvider(),
$services->getJobQueueGroup()
);
},
@ -2366,7 +2371,7 @@ return [
'UserNamePrefixSearch' => static function ( MediaWikiServices $services ): UserNamePrefixSearch {
return new UserNamePrefixSearch(
$services->getDBLoadBalancerFactory(),
$services->getConnectionProvider(),
$services->getUserNameUtils(),
$services->getHideUserUtils()
);
@ -2398,7 +2403,7 @@ return [
new ServiceOptions( UserOptionsManager::CONSTRUCTOR_OPTIONS, $services->getMainConfig() ),
$services->get( '_DefaultOptionsLookup' ),
$services->getLanguageConverterFactory(),
$services->getDBLoadBalancerFactory(),
$services->getConnectionProvider(),
LoggerFactory::getInstance( 'UserOptionsManager' ),
$services->getHookContainer(),
$services->getUserFactory(),
@ -2419,7 +2424,7 @@ return [
'WatchedItemQueryService' => static function ( MediaWikiServices $services ): WatchedItemQueryService {
return new WatchedItemQueryService(
$services->getDBLoadBalancerFactory(),
$services->getConnectionProvider(),
$services->getCommentStore(),
$services->getWatchedItemStore(),
$services->getHookContainer(),
@ -2505,7 +2510,7 @@ return [
return new ImportableOldRevisionImporter(
false,
LoggerFactory::getInstance( 'OldRevisionImporter' ),
$services->getDBLoadBalancerFactory(),
$services->getConnectionProvider(),
$services->getRevisionStore(),
$services->getSlotRoleRegistry(),
$services->getWikiPageFactory(),