*/
use MediaWiki\Auth\AuthManager;
+use MediaWiki\Config\ConfigRepository;
use MediaWiki\Interwiki\ClassicInterwikiLookup;
use MediaWiki\Linker\LinkRendererFactory;
use MediaWiki\Logger\LoggerFactory;
use MediaWiki\Shell\CommandFactory;
use MediaWiki\Storage\BlobStoreFactory;
use MediaWiki\Storage\NameTableStore;
-use MediaWiki\Storage\RevisionStoreFactory;
+use MediaWiki\Storage\RevisionStore;
use MediaWiki\Storage\SqlBlobStore;
use Wikimedia\ObjectFactory;
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' ),
);
},
+ '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' ) );
},
},
'SearchEngineConfig' => function ( MediaWikiServices $services ) {
- global $wgContLang;
- return new SearchEngineConfig( $services->getMainConfig(), $wgContLang );
+ return new SearchEngineConfig( $services->getMainConfig(),
+ $services->getContentLanguage() );
},
'SkinFactory' => function ( MediaWikiServices $services ) {
'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 ) {
},
'_MediaWikiTitleCodec' => function ( MediaWikiServices $services ) {
- global $wgContLang;
-
return new MediaWikiTitleCodec(
- $wgContLang,
+ $services->getContentLanguage(),
$services->getGenderCache(),
$services->getMainConfig()->get( 'LocalInterwikis' )
);
},
'RevisionStore' => function ( MediaWikiServices $services ) {
- return $services->getRevisionStoreFactory()->getRevisionStore();
- },
-
- 'RevisionStoreFactory' => function ( MediaWikiServices $services ) {
/** @var SqlBlobStore $blobStore */
$blobStore = $services->getService( '_SqlBlobStore' );
- $config = $services->getMainConfig();
- $store = new RevisionStoreFactory(
+ $store = new RevisionStore(
$services->getDBLoadBalancer(),
$blobStore,
$services->getMainWANObjectCache(),
$services->getContentModelStore(),
$services->getSlotRoleStore(),
$services->getMainConfig()->get( 'MultiContentRevisionSchemaMigrationStage' ),
- $services->getActorMigration(),
- LoggerFactory::getInstance( 'RevisionStore' ),
- $config->get( 'ContentHandlerUseDB' )
+ $services->getActorMigration()
);
+ $store->setLogger( LoggerFactory::getInstance( 'RevisionStore' ) );
+
+ $config = $services->getMainConfig();
+ $store->setContentHandlerUseDB( $config->get( 'ContentHandlerUseDB' ) );
+
return $store;
},
},
'BlobStoreFactory' => function ( MediaWikiServices $services ) {
- global $wgContLang;
return new BlobStoreFactory(
$services->getDBLoadBalancer(),
$services->getMainWANObjectCache(),
$services->getMainConfig(),
- $wgContLang
+ $services->getContentLanguage()
);
},
},
'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;
},
'CommentStore' => function ( MediaWikiServices $services ) {
- global $wgContLang;
return new CommentStore(
- $wgContLang,
+ $services->getContentLanguage(),
$services->getMainConfig()->get( 'CommentTableSchemaMigrationStage' )
);
},
);
},
+ '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