Add PasswordFactory to MediaWikiServices
[lhc/web/wiklou.git] / includes / ServiceWiring.php
index 379424c..853b06d 100644 (file)
@@ -38,6 +38,7 @@
  */
 
 use MediaWiki\Auth\AuthManager;
+use MediaWiki\Config\ConfigRepository;
 use MediaWiki\Interwiki\ClassicInterwikiLookup;
 use MediaWiki\Linker\LinkRendererFactory;
 use MediaWiki\Logger\LoggerFactory;
@@ -104,16 +105,19 @@ return [
                return $factory;
        },
 
+       'ConfigRepository' => function ( MediaWikiServices $services ) {
+               return new ConfigRepository( $services->getConfigFactory() );
+       },
+
        'MainConfig' => function ( MediaWikiServices $services ) {
                // Use the 'main' config from the ConfigFactory service.
                return $services->getConfigFactory()->makeConfig( 'main' );
        },
 
        'InterwikiLookup' => function ( MediaWikiServices $services ) {
-               global $wgContLang; // TODO: manage $wgContLang as a service
                $config = $services->getMainConfig();
                return new ClassicInterwikiLookup(
-                       $wgContLang,
+                       $services->getContentLanguage(),
                        $services->getMainWANObjectCache(),
                        $config->get( 'InterwikiExpiry' ),
                        $config->get( 'InterwikiCache' ),
@@ -128,6 +132,14 @@ return [
                );
        },
 
+       'PerDbNameStatsdDataFactory' => function ( MediaWikiServices $services ) {
+               $config = $services->getMainConfig();
+               $wiki = $config->get( 'DBname' );
+               return new BufferingStatsdDataFactory(
+                       rtrim( $services->getMainConfig()->get( 'StatsdMetricPrefix' ) ) . '.' . $wiki
+               );
+       },
+
        'EventRelayerGroup' => function ( MediaWikiServices $services ) {
                return new EventRelayerGroup( $services->getMainConfig()->get( 'EventRelayerConfig' ) );
        },
@@ -137,8 +149,8 @@ return [
        },
 
        'SearchEngineConfig' => function ( MediaWikiServices $services ) {
-               global $wgContLang;
-               return new SearchEngineConfig( $services->getMainConfig(), $wgContLang );
+               return new SearchEngineConfig( $services->getMainConfig(),
+                       $services->getContentLanguage() );
        },
 
        'SkinFactory' => function ( MediaWikiServices $services ) {
@@ -288,7 +300,8 @@ return [
 
        'Parser' => function ( MediaWikiServices $services ) {
                $conf = $services->getMainConfig()->get( 'ParserConf' );
-               return ObjectFactory::constructClassInstance( $conf['class'], [ $conf ] );
+               return ObjectFactory::constructClassInstance( $conf['class'],
+                       [ $conf, $services->getMagicWordFactory() ] );
        },
 
        'ParserCache' => function ( MediaWikiServices $services ) {
@@ -331,10 +344,8 @@ return [
        },
 
        '_MediaWikiTitleCodec' => function ( MediaWikiServices $services ) {
-               global $wgContLang;
-
                return new MediaWikiTitleCodec(
-                       $wgContLang,
+                       $services->getContentLanguage(),
                        $services->getGenderCache(),
                        $services->getMainConfig()->get( 'LocalInterwikis' )
                );
@@ -494,12 +505,11 @@ return [
        },
 
        'BlobStoreFactory' => function ( MediaWikiServices $services ) {
-               global $wgContLang;
                return new BlobStoreFactory(
                        $services->getDBLoadBalancer(),
                        $services->getMainWANObjectCache(),
                        $services->getMainConfig(),
-                       $wgContLang
+                       $services->getContentLanguage()
                );
        },
 
@@ -540,12 +550,30 @@ return [
                );
        },
 
+       'ChangeTagDefStore' => function ( MediaWikiServices $services ) {
+               return new NameTableStore(
+                       $services->getDBLoadBalancer(),
+                       $services->getMainWANObjectCache(),
+                       LoggerFactory::getInstance( 'NameTableSqlStore' ),
+                       'change_tag_def',
+                       'ctd_id',
+                       'ctd_name',
+                       null,
+                       false,
+                       function ( $insertFields ) {
+                               $insertFields['ctd_user_defined'] = 0;
+                               $insertFields['ctd_count'] = 0;
+                               return $insertFields;
+                       }
+               );
+       },
+
        'PreferencesFactory' => function ( MediaWikiServices $services ) {
-               global $wgContLang;
                $authManager = AuthManager::singleton();
                $linkRenderer = $services->getLinkRendererFactory()->create();
                $config = $services->getMainConfig();
-               $factory = new DefaultPreferencesFactory( $config, $wgContLang, $authManager, $linkRenderer );
+               $factory = new DefaultPreferencesFactory( $config, $services->getContentLanguage(),
+                       $authManager, $linkRenderer );
                $factory->setLogger( LoggerFactory::getInstance( 'preferences' ) );
 
                return $factory;
@@ -556,9 +584,8 @@ return [
        },
 
        'CommentStore' => function ( MediaWikiServices $services ) {
-               global $wgContLang;
                return new CommentStore(
-                       $wgContLang,
+                       $services->getContentLanguage(),
                        $services->getMainConfig()->get( 'CommentTableSchemaMigrationStage' )
                );
        },
@@ -569,6 +596,22 @@ return [
                );
        },
 
+       'MagicWordFactory' => function ( MediaWikiServices $services ) {
+               return new MagicWordFactory( $services->getContentLanguage() );
+       },
+
+       'ContentLanguage' => function ( MediaWikiServices $services ) {
+               return Language::factory( $services->getMainConfig()->get( 'LanguageCode' ) );
+       },
+
+       'PasswordFactory' => function ( MediaWikiServices $services ) {
+               $config = $services->getMainConfig();
+               return new PasswordFactory(
+                       $config->get( 'PasswordConfig' ),
+                       $config->get( 'PasswordDefault' )
+               );
+       },
+
        ///////////////////////////////////////////////////////////////////////////
        // NOTE: When adding a service here, don't forget to add a getter function
        // in the MediaWikiServices class. The convenience getter should just call