$services->getExternalStoreAccess(),
$services->getMainWANObjectCache(),
new ServiceOptions( BlobStoreFactory::CONSTRUCTOR_OPTIONS,
- $services->getMainConfig() ),
- $services->getContentLanguage()
+ $services->getMainConfig() )
);
},
$store,
$logger,
[ function () use ( $services ) {
- $services->getResourceLoader()->getMessageBlobStore()->clear();
+ // NOTE: Make sure we use the same cache object that is assigned in the
+ // constructor of the MessageBlobStore class used by ResourceLoader.
+ // T231866: Avoid circular dependency via ResourceLoader.
+ MessageBlobStore::clearGlobalCacheEntry( $services->getMainWANObjectCache() );
} ],
$services->getLanguageNameUtils()
);
"Cache type \"$id\" is not present in \$wgObjectCaches." );
}
- return ObjectCache::newFromParams( $mainConfig->get( 'ObjectCaches' )[$id] );
+ $params = $mainConfig->get( 'ObjectCaches' )[$id];
+ $logger = $params['logger'] = LoggerFactory::getInstance( $params['loggroup'] ?? 'objectcache' );
+
+ $store = ObjectCache::newFromParams( $params );
+ $logger->debug( 'MainObjectStash using store {class}', [
+ 'class' => get_class( $store )
+ ] );
+
+ return $store;
},
'MainWANObjectCache' => function ( MediaWikiServices $services ) : WANObjectCache {
'MessageCache' => function ( MediaWikiServices $services ) : MessageCache {
$mainConfig = $services->getMainConfig();
+ $clusterCache = ObjectCache::getInstance( $mainConfig->get( 'MessageCacheType' ) );
+ $srvCache = $mainConfig->get( 'UseLocalMessageCache' )
+ ? $services->getLocalServerObjectCache()
+ : new EmptyBagOStuff();
+
+ // TODO: Inject this into MessageCache.
+ $logger = LoggerFactory::getInstance( 'MessageCache' );
+ $logger->debug( 'MessageCache using store {class}', [
+ 'class' => get_class( $clusterCache )
+ ] );
+
return new MessageCache(
$services->getMainWANObjectCache(),
- ObjectCache::getInstance( $mainConfig->get( 'MessageCacheType' ) ),
- $mainConfig->get( 'UseLocalMessageCache' )
- ? $services->getLocalServerObjectCache()
- : new EmptyBagOStuff(),
+ $clusterCache,
+ $srvCache,
$mainConfig->get( 'UseDatabaseMessages' ),
$services->getContentLanguage()
);