Merge "Fix \n handling for HTMLUsersMultiselectField"
[lhc/web/wiklou.git] / includes / ServiceWiring.php
index ce82702..2dfcc42 100644 (file)
@@ -43,24 +43,25 @@ use MediaWiki\Logger\LoggerFactory;
 use MediaWiki\MediaWikiServices;
 
 return [
-       'DBLoadBalancerFactory' => function( MediaWikiServices $services ) {
+       'DBLoadBalancerFactory' => function ( MediaWikiServices $services ) {
                $mainConfig = $services->getMainConfig();
 
                $lbConf = MWLBFactory::applyDefaultConfig(
                        $mainConfig->get( 'LBFactoryConf' ),
-                       $mainConfig
+                       $mainConfig,
+                       $services->getConfiguredReadOnlyMode()
                );
                $class = MWLBFactory::getLBFactoryClass( $lbConf );
 
                return new $class( $lbConf );
        },
 
-       'DBLoadBalancer' => function( MediaWikiServices $services ) {
+       'DBLoadBalancer' => function ( MediaWikiServices $services ) {
                // just return the default LB from the DBLoadBalancerFactory service
                return $services->getDBLoadBalancerFactory()->getMainLB();
        },
 
-       'SiteStore' => function( MediaWikiServices $services ) {
+       'SiteStore' => function ( MediaWikiServices $services ) {
                $rawSiteStore = new DBSiteStore( $services->getDBLoadBalancer() );
 
                // TODO: replace wfGetCache with a CacheFactory service.
@@ -70,7 +71,7 @@ return [
                return new CachingSiteStore( $rawSiteStore, $cache );
        },
 
-       'SiteLookup' => function( MediaWikiServices $services ) {
+       'SiteLookup' => function ( MediaWikiServices $services ) {
                $cacheFile = $services->getMainConfig()->get( 'SitesCacheFile' );
 
                if ( $cacheFile !== false ) {
@@ -81,7 +82,7 @@ return [
                }
        },
 
-       'ConfigFactory' => function( MediaWikiServices $services ) {
+       'ConfigFactory' => function ( MediaWikiServices $services ) {
                // Use the bootstrap config to initialize the ConfigFactory.
                $registry = $services->getBootstrapConfig()->get( 'ConfigRegistry' );
                $factory = new ConfigFactory();
@@ -92,12 +93,12 @@ return [
                return $factory;
        },
 
-       'MainConfig' => function( MediaWikiServices $services ) {
+       'MainConfig' => function ( MediaWikiServices $services ) {
                // Use the 'main' config from the ConfigFactory service.
                return $services->getConfigFactory()->makeConfig( 'main' );
        },
 
-       'InterwikiLookup' => function( MediaWikiServices $services ) {
+       'InterwikiLookup' => function ( MediaWikiServices $services ) {
                global $wgContLang; // TODO: manage $wgContLang as a service
                $config = $services->getMainConfig();
                return new ClassicInterwikiLookup(
@@ -110,26 +111,26 @@ return [
                );
        },
 
-       'StatsdDataFactory' => function( MediaWikiServices $services ) {
+       'StatsdDataFactory' => function ( MediaWikiServices $services ) {
                return new BufferingStatsdDataFactory(
                        rtrim( $services->getMainConfig()->get( 'StatsdMetricPrefix' ), '.' )
                );
        },
 
-       'EventRelayerGroup' => function( MediaWikiServices $services ) {
+       'EventRelayerGroup' => function ( MediaWikiServices $services ) {
                return new EventRelayerGroup( $services->getMainConfig()->get( 'EventRelayerConfig' ) );
        },
 
-       'SearchEngineFactory' => function( MediaWikiServices $services ) {
+       'SearchEngineFactory' => function ( MediaWikiServices $services ) {
                return new SearchEngineFactory( $services->getSearchEngineConfig() );
        },
 
-       'SearchEngineConfig' => function( MediaWikiServices $services ) {
+       'SearchEngineConfig' => function ( MediaWikiServices $services ) {
                global $wgContLang;
                return new SearchEngineConfig( $services->getMainConfig(), $wgContLang );
        },
 
-       'SkinFactory' => function( MediaWikiServices $services ) {
+       'SkinFactory' => function ( MediaWikiServices $services ) {
                $factory = new SkinFactory();
 
                $names = $services->getMainConfig()->get( 'ValidSkinNames' );
@@ -152,20 +153,21 @@ return [
                return $factory;
        },
 
-       'WatchedItemStore' => function( MediaWikiServices $services ) {
+       'WatchedItemStore' => function ( MediaWikiServices $services ) {
                $store = new WatchedItemStore(
                        $services->getDBLoadBalancer(),
-                       new HashBagOStuff( [ 'maxKeys' => 100 ] )
+                       new HashBagOStuff( [ 'maxKeys' => 100 ] ),
+                       $services->getReadOnlyMode()
                );
                $store->setStatsdDataFactory( $services->getStatsdDataFactory() );
                return $store;
        },
 
-       'WatchedItemQueryService' => function( MediaWikiServices $services ) {
+       'WatchedItemQueryService' => function ( MediaWikiServices $services ) {
                return new WatchedItemQueryService( $services->getDBLoadBalancer() );
        },
 
-       'CryptRand' => function( MediaWikiServices $services ) {
+       'CryptRand' => function ( MediaWikiServices $services ) {
                $secretKey = $services->getMainConfig()->get( 'SecretKey' );
                return new CryptRand(
                        [
@@ -176,7 +178,7 @@ return [
                                // for a little more variance
                                'wfWikiID',
                                // If we have a secret key set then throw it into the state as well
-                               function() use ( $secretKey ) {
+                               function () use ( $secretKey ) {
                                        return $secretKey ?: '';
                                }
                        ],
@@ -190,7 +192,7 @@ return [
                );
        },
 
-       'CryptHKDF' => function( MediaWikiServices $services ) {
+       'CryptHKDF' => function ( MediaWikiServices $services ) {
                $config = $services->getMainConfig();
 
                $secret = $config->get( 'HKDFSecret' ) ?: $config->get( 'SecretKey' );
@@ -213,13 +215,13 @@ return [
                );
        },
 
-       'MediaHandlerFactory' => function( MediaWikiServices $services ) {
+       'MediaHandlerFactory' => function ( MediaWikiServices $services ) {
                return new MediaHandlerFactory(
                        $services->getMainConfig()->get( 'MediaHandlers' )
                );
        },
 
-       'MimeAnalyzer' => function( MediaWikiServices $services ) {
+       'MimeAnalyzer' => function ( MediaWikiServices $services ) {
                $logger = LoggerFactory::getInstance( 'Mime' );
                $mainConfig = $services->getMainConfig();
                $params = [
@@ -272,7 +274,7 @@ return [
                return new MimeMagic( $params );
        },
 
-       'ProxyLookup' => function( MediaWikiServices $services ) {
+       'ProxyLookup' => function ( MediaWikiServices $services ) {
                $mainConfig = $services->getMainConfig();
                return new ProxyLookup(
                        $mainConfig->get( 'SquidServers' ),
@@ -280,26 +282,26 @@ return [
                );
        },
 
-       'Parser' => function( MediaWikiServices $services ) {
+       'Parser' => function ( MediaWikiServices $services ) {
                $conf = $services->getMainConfig()->get( 'ParserConf' );
                return ObjectFactory::constructClassInstance( $conf['class'], [ $conf ] );
        },
 
-       'LinkCache' => function( MediaWikiServices $services ) {
+       'LinkCache' => function ( MediaWikiServices $services ) {
                return new LinkCache(
                        $services->getTitleFormatter(),
                        $services->getMainWANObjectCache()
                );
        },
 
-       'LinkRendererFactory' => function( MediaWikiServices $services ) {
+       'LinkRendererFactory' => function ( MediaWikiServices $services ) {
                return new LinkRendererFactory(
                        $services->getTitleFormatter(),
                        $services->getLinkCache()
                );
        },
 
-       'LinkRenderer' => function( MediaWikiServices $services ) {
+       'LinkRenderer' => function ( MediaWikiServices $services ) {
                global $wgUser;
 
                if ( defined( 'MW_NO_SESSION' ) ) {
@@ -309,11 +311,11 @@ return [
                }
        },
 
-       'GenderCache' => function( MediaWikiServices $services ) {
+       'GenderCache' => function ( MediaWikiServices $services ) {
                return new GenderCache();
        },
 
-       '_MediaWikiTitleCodec' => function( MediaWikiServices $services ) {
+       '_MediaWikiTitleCodec' => function ( MediaWikiServices $services ) {
                global $wgContLang;
 
                return new MediaWikiTitleCodec(
@@ -323,15 +325,15 @@ return [
                );
        },
 
-       'TitleFormatter' => function( MediaWikiServices $services ) {
+       'TitleFormatter' => function ( MediaWikiServices $services ) {
                return $services->getService( '_MediaWikiTitleCodec' );
        },
 
-       'TitleParser' => function( MediaWikiServices $services ) {
+       'TitleParser' => function ( MediaWikiServices $services ) {
                return $services->getService( '_MediaWikiTitleCodec' );
        },
 
-       'MainObjectStash' => function( MediaWikiServices $services ) {
+       'MainObjectStash' => function ( MediaWikiServices $services ) {
                $mainConfig = $services->getMainConfig();
 
                $id = $mainConfig->get( 'MainStash' );
@@ -343,7 +345,7 @@ return [
                return \ObjectCache::newFromParams( $mainConfig->get( 'ObjectCaches' )[$id] );
        },
 
-       'MainWANObjectCache' => function( MediaWikiServices $services ) {
+       'MainWANObjectCache' => function ( MediaWikiServices $services ) {
                $mainConfig = $services->getMainConfig();
 
                $id = $mainConfig->get( 'MainWANCache' );
@@ -363,7 +365,7 @@ return [
                return \ObjectCache::newWANCacheFromParams( $params );
        },
 
-       'LocalServerObjectCache' => function( MediaWikiServices $services ) {
+       'LocalServerObjectCache' => function ( MediaWikiServices $services ) {
                $mainConfig = $services->getMainConfig();
 
                if ( function_exists( 'apc_fetch' ) ) {
@@ -386,7 +388,7 @@ return [
                return \ObjectCache::newFromParams( $mainConfig->get( 'ObjectCaches' )[$id] );
        },
 
-       'VirtualRESTServiceClient' => function( MediaWikiServices $services ) {
+       'VirtualRESTServiceClient' => function ( MediaWikiServices $services ) {
                $config = $services->getMainConfig()->get( 'VirtualRestConfig' );
 
                $vrsClient = new VirtualRESTServiceClient( new MultiHttpClient( [] ) );
@@ -404,6 +406,17 @@ return [
                return $vrsClient;
        },
 
+       'ConfiguredReadOnlyMode' => function ( MediaWikiServices $services ) {
+               return new ConfiguredReadOnlyMode( $services->getMainConfig() );
+       },
+
+       'ReadOnlyMode' => function ( MediaWikiServices $services ) {
+               return new ReadOnlyMode(
+                       $services->getConfiguredReadOnlyMode(),
+                       $services->getDBLoadBalancer()
+               );
+       },
+
        ///////////////////////////////////////////////////////////////////////////
        // NOTE: When adding a service here, don't forget to add a getter function
        // in the MediaWikiServices class. The convenience getter should just call