'BlobStoreFactory' => function ( MediaWikiServices $services ) : BlobStoreFactory {
return new BlobStoreFactory(
$services->getDBLoadBalancerFactory(),
+ $services->getExternalStoreAccess(),
$services->getMainWANObjectCache(),
new ServiceOptions( BlobStoreFactory::$constructorOptions,
$services->getMainConfig() ),
},
'BlockManager' => function ( MediaWikiServices $services ) : BlockManager {
- $config = $services->getMainConfig();
$context = RequestContext::getMain();
return new BlockManager(
+ new ServiceOptions(
+ BlockManager::$constructorOptions, $services->getMainConfig()
+ ),
$context->getUser(),
- $context->getRequest(),
- $config->get( 'ApplyIpBlocksToXff' ),
- $config->get( 'CookieSetOnAutoblock' ),
- $config->get( 'CookieSetOnIpBlock' ),
- $config->get( 'DnsBlacklistUrls' ),
- $config->get( 'EnableDnsBlacklist' ),
- $config->get( 'ProxyList' ),
- $config->get( 'ProxyWhitelist' ),
- $config->get( 'SoftBlockRanges' )
+ $context->getRequest()
);
},
return new EventRelayerGroup( $services->getMainConfig()->get( 'EventRelayerConfig' ) );
},
+ 'ExternalStoreAccess' => function ( MediaWikiServices $services ) : ExternalStoreAccess {
+ return new ExternalStoreAccess(
+ $services->getExternalStoreFactory(),
+ LoggerFactory::getInstance( 'ExternalStore' )
+ );
+ },
+
'ExternalStoreFactory' => function ( MediaWikiServices $services ) : ExternalStoreFactory {
$config = $services->getMainConfig();
+ $writeStores = $config->get( 'DefaultExternalStore' );
return new ExternalStoreFactory(
- $config->get( 'ExternalStores' )
+ $config->get( 'ExternalStores' ),
+ ( $writeStores !== false ) ? (array)$writeStores : [],
+ $services->getDBLoadBalancer()->getLocalDomainID(),
+ LoggerFactory::getInstance( 'ExternalStore' )
);
},
'LocalServerObjectCache' => function ( MediaWikiServices $services ) : BagOStuff {
$cacheId = \ObjectCache::detectLocalServerCache();
+
return \ObjectCache::newFromId( $cacheId );
},
wfUrlProtocols(),
$services->getSpecialPageFactory(),
$services->getLinkRendererFactory(),
- $services->getNamespaceInfo()
+ $services->getNamespaceInfo(),
+ LoggerFactory::getInstance( 'Parser' )
);
},
$config = $services->getMainConfig();
return new PermissionManager(
$services->getSpecialPageFactory(),
+ $services->getRevisionLookup(),
$config->get( 'WhitelistRead' ),
$config->get( 'WhitelistReadRegexp' ),
$config->get( 'EmailConfirmToEdit' ),
$config->get( 'BlockDisablesLogin' ),
+ $config->get( 'GroupPermissions' ),
+ $config->get( 'RevokePermissions' ),
+ $config->get( 'AvailableRights' ),
$services->getNamespaceInfo()
);
},
'SiteStore' => function ( MediaWikiServices $services ) : SiteStore {
$rawSiteStore = new DBSiteStore( $services->getDBLoadBalancer() );
- // TODO: replace wfGetCache with a CacheFactory service.
- // TODO: replace wfIsHHVM with a capabilities service.
- $cache = wfGetCache( wfIsHHVM() ? CACHE_ACCEL : CACHE_ANYTHING );
+ $cache = $services->getLocalServerObjectCache();
+ if ( $cache instanceof EmptyBagOStuff ) {
+ $cache = ObjectCache::getLocalClusterInstance();
+ }
return new CachingSiteStore( $rawSiteStore, $cache );
},