},
'GenderCache' => function ( MediaWikiServices $services ) : GenderCache {
- return new GenderCache( $services->getNamespaceInfo() );
+ $nsInfo = $services->getNamespaceInfo();
+ // Database layer may be disabled, so processing without database connection
+ $dbLoadBalancer = $services->isServiceDisabled( 'DBLoadBalancer' )
+ ? null
+ : $services->getDBLoadBalancer();
+ return new GenderCache( $nsInfo, $dbLoadBalancer );
},
'HttpRequestFactory' =>
'LocalServerObjectCache' => function ( MediaWikiServices $services ) : BagOStuff {
$cacheId = \ObjectCache::detectLocalServerCache();
+
return \ObjectCache::newFromId( $cacheId );
},
wfUrlProtocols(),
$services->getSpecialPageFactory(),
$services->getLinkRendererFactory(),
- $services->getNamespaceInfo()
+ $services->getNamespaceInfo(),
+ LoggerFactory::getInstance( 'Parser' )
);
},
'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 );
},