use Liuggio\StatsdClient\Factory\StatsdDataFactoryInterface;
use MediaWiki\Auth\AuthManager;
+use MediaWiki\BadFileLookup;
use MediaWiki\Block\BlockManager;
use MediaWiki\Block\BlockRestrictionStore;
use MediaWiki\Config\ConfigRepository;
use MediaWiki\Config\ServiceOptions;
+use MediaWiki\FileBackend\FSFile\TempFSFileFactory;
+use MediaWiki\FileBackend\LockManager\LockManagerGroupFactory;
use MediaWiki\Http\HttpRequestFactory;
use MediaWiki\Interwiki\ClassicInterwikiLookup;
use MediaWiki\Interwiki\InterwikiLookup;
use MediaWiki\Linker\LinkRendererFactory;
use MediaWiki\Logger\LoggerFactory;
use MediaWiki\MediaWikiServices;
+use MediaWiki\Page\MovePageFactory;
use MediaWiki\Permissions\PermissionManager;
use MediaWiki\Preferences\PreferencesFactory;
use MediaWiki\Preferences\DefaultPreferencesFactory;
use MediaWiki\Storage\NameTableStoreFactory;
use MediaWiki\Storage\SqlBlobStore;
use MediaWiki\Storage\PageEditStash;
+use Wikimedia\ObjectFactory;
return [
'ActorMigration' => function ( MediaWikiServices $services ) : ActorMigration {
);
},
+ 'BadFileLookup' => function ( MediaWikiServices $services ) : BadFileLookup {
+ return new BadFileLookup(
+ function () {
+ return wfMessage( 'bad_image_list' )->inContentLanguage()->plain();
+ },
+ $services->getLocalServerObjectCache(),
+ $services->getRepoGroup(),
+ $services->getTitleParser()
+ );
+ },
+
'BlobStore' => function ( MediaWikiServices $services ) : BlobStore {
return $services->getService( '_SqlBlobStore' );
},
BlockManager::$constructorOptions, $services->getMainConfig()
),
$context->getUser(),
- $context->getRequest()
+ $context->getRequest(),
+ $services->getPermissionManager()
);
},
},
'GenderCache' => function ( MediaWikiServices $services ) : GenderCache {
- return new GenderCache( $services->getNamespaceInfo() );
+ $nsInfo = $services->getNamespaceInfo();
+ // Database layer may be disabled, so processing without database connection
+ $dbLoadBalancer = $services->isServiceDisabled( 'DBLoadBalancer' )
+ ? null
+ : $services->getDBLoadBalancer();
+ return new GenderCache( $nsInfo, $dbLoadBalancer );
},
'HttpRequestFactory' =>
},
'LocalServerObjectCache' => function ( MediaWikiServices $services ) : BagOStuff {
+ $config = $services->getMainConfig();
$cacheId = \ObjectCache::detectLocalServerCache();
- return \ObjectCache::newFromId( $cacheId );
+ return \ObjectCache::newFromParams( $config->get( 'ObjectCaches' )[$cacheId] );
+ },
+
+ 'LockManagerGroupFactory' => function ( MediaWikiServices $services ) : LockManagerGroupFactory {
+ return new LockManagerGroupFactory(
+ WikiMap::getCurrentWikiDbDomain()->getId(),
+ $services->getMainConfig()->get( 'LockManagers' ),
+ $services->getDBLoadBalancerFactory()
+ );
},
'MagicWordFactory' => function ( MediaWikiServices $services ) : MagicWordFactory {
);
},
+ 'MessageCache' => function ( MediaWikiServices $services ) : MessageCache {
+ $mainConfig = $services->getMainConfig();
+ return new MessageCache(
+ $services->getMainWANObjectCache(),
+ ObjectCache::getInstance( $mainConfig->get( 'MessageCacheType' ) ),
+ $mainConfig->get( 'UseLocalMessageCache' )
+ ? $services->getLocalServerObjectCache()
+ : new EmptyBagOStuff(),
+ $mainConfig->get( 'UseDatabaseMessages' ),
+ $mainConfig->get( 'MsgCacheExpiry' ),
+ $services->getContentLanguage()
+ );
+ },
+
'MimeAnalyzer' => function ( MediaWikiServices $services ) : MimeAnalyzer {
$logger = LoggerFactory::getInstance( 'Mime' );
$mainConfig = $services->getMainConfig();
return new MimeAnalyzer( $params );
},
+ 'MovePageFactory' => function ( MediaWikiServices $services ) : MovePageFactory {
+ return new MovePageFactory(
+ new ServiceOptions( MovePageFactory::$constructorOptions, $services->getMainConfig() ),
+ $services->getDBLoadBalancer(),
+ $services->getNamespaceInfo(),
+ $services->getWatchedItemStore(),
+ $services->getPermissionManager(),
+ $services->getRepoGroup()
+ );
+ },
+
'NamespaceInfo' => function ( MediaWikiServices $services ) : NamespaceInfo {
return new NamespaceInfo( new ServiceOptions( NamespaceInfo::$constructorOptions,
$services->getMainConfig() ) );
);
},
+ 'ObjectFactory' => function ( MediaWikiServices $services ) : ObjectFactory {
+ return new ObjectFactory( $services );
+ },
+
'OldRevisionImporter' => function ( MediaWikiServices $services ) : OldRevisionImporter {
return new ImportableOldRevisionImporter(
true,
},
'PermissionManager' => function ( MediaWikiServices $services ) : PermissionManager {
- $config = $services->getMainConfig();
return new PermissionManager(
+ new ServiceOptions(
+ PermissionManager::$constructorOptions, $services->getMainConfig()
+ ),
$services->getSpecialPageFactory(),
$services->getRevisionLookup(),
- $config->get( 'WhitelistRead' ),
- $config->get( 'WhitelistReadRegexp' ),
- $config->get( 'EmailConfirmToEdit' ),
- $config->get( 'BlockDisablesLogin' ),
- $config->get( 'GroupPermissions' ),
- $config->get( 'RevokePermissions' ),
- $config->get( 'AvailableRights' ),
$services->getNamespaceInfo()
);
},
);
},
+ 'TempFSFileFactory' => function ( MediaWikiServices $services ) : TempFSFileFactory {
+ return new TempFSFileFactory( $services->getMainConfig()->get( 'TmpDirectory' ) );
+ },
+
'TitleFormatter' => function ( MediaWikiServices $services ) : TitleFormatter {
return $services->getService( '_MediaWikiTitleCodec' );
},