Merge "Make LocalisationCache a service" into REL1_34
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Tue, 8 Oct 2019 21:08:21 +0000 (21:08 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Tue, 8 Oct 2019 21:08:21 +0000 (21:08 +0000)
1  2 
includes/ServiceWiring.php

@@@ -287,6 -287,36 +287,36 @@@ return 
                );
        },
  
+       'LocalisationCache' => function ( MediaWikiServices $services ) : LocalisationCache {
+               $conf = $services->getMainConfig()->get( 'LocalisationCacheConf' );
+               $logger = LoggerFactory::getInstance( 'localisation' );
+               $store = LocalisationCache::getStoreFromConf(
+                       $conf, $services->getMainConfig()->get( 'CacheDirectory' ) );
+               $logger->debug( 'LocalisationCache: using store ' . get_class( $store ) );
+               return new $conf['class'](
+                       new ServiceOptions(
+                               LocalisationCache::$constructorOptions,
+                               // Two of the options are stored in $wgLocalisationCacheConf
+                               $conf,
+                               // In case someone set that config variable and didn't reset all keys, set defaults.
+                               [
+                                       'forceRecache' => false,
+                                       'manualRecache' => false,
+                               ],
+                               // Some other options come from config itself
+                               $services->getMainConfig()
+                       ),
+                       $store,
+                       $logger,
+                       [ function () use ( $services ) {
+                               $services->getResourceLoader()->getMessageBlobStore()->clear();
+                       } ]
+               );
+       },
        'LocalServerObjectCache' => function ( MediaWikiServices $services ) : BagOStuff {
                $config = $services->getMainConfig();
                $cacheId = ObjectCache::detectLocalServerCache();
        'PreferencesFactory' => function ( MediaWikiServices $services ) : PreferencesFactory {
                $factory = new DefaultPreferencesFactory(
                        new ServiceOptions(
 -                              DefaultPreferencesFactory::$constructorOptions, $services->getMainConfig() ),
 +                              DefaultPreferencesFactory::CONSTRUCTOR_OPTIONS, $services->getMainConfig() ),
                        $services->getContentLanguage(),
                        AuthManager::singleton(),
                        $services->getLinkRendererFactory()->create(),