use MediaWiki\Linker\LinkRendererFactory;
use MediaWiki\Logger\LoggerFactory;
use MediaWiki\MediaWikiServices;
+use MediaWiki\Permissions\PermissionManager;
use MediaWiki\Preferences\PreferencesFactory;
use MediaWiki\Preferences\DefaultPreferencesFactory;
use MediaWiki\Revision\MainSlotRoleHandler;
return new CryptHKDF( $secret, $config->get( 'HKDFAlgorithm' ), $cache, $context );
},
- 'CryptRand' => function () : CryptRand {
- return new CryptRand();
+ 'DateFormatterFactory' => function () : DateFormatterFactory {
+ return new DateFormatterFactory;
},
'DBLoadBalancer' => function ( MediaWikiServices $services ) : Wikimedia\Rdbms\LoadBalancer {
$lbConf = MWLBFactory::applyDefaultConfig(
$mainConfig->get( 'LBFactoryConf' ),
$mainConfig,
- $services->getConfiguredReadOnlyMode()
+ $services->getConfiguredReadOnlyMode(),
+ $services->getLocalServerObjectCache(),
+ $services->getMainObjectStash(),
+ $services->getMainWANObjectCache()
);
$class = MWLBFactory::getLBFactoryClass( $lbConf );
return new MimeAnalyzer( $params );
},
+ 'NamespaceInfo' => function ( MediaWikiServices $services ) : NamespaceInfo {
+ return new NamespaceInfo( $services->getMainConfig() );
+ },
+
'NameTableStoreFactory' => function ( MediaWikiServices $services ) : NameTableStoreFactory {
return new NameTableStoreFactory(
$services->getDBLoadBalancerFactory(),
$services->getContentLanguage(),
wfUrlProtocols(),
$services->getSpecialPageFactory(),
- $services->getMainConfig()
+ $services->getMainConfig(),
+ $services->getLinkRendererFactory(),
+ $services->getNamespaceInfo()
);
},
);
},
+ 'PermissionManager' => function ( MediaWikiServices $services ) : PermissionManager {
+ $config = $services->getMainConfig();
+ return new PermissionManager(
+ $services->getSpecialPageFactory(),
+ $config->get( 'WhitelistRead' ),
+ $config->get( 'WhitelistReadRegexp' ),
+ $config->get( 'EmailConfirmToEdit' ),
+ $config->get( 'BlockDisablesLogin' ),
+ $services->getNamespaceInfo()
+ );
+ },
+
'PreferencesFactory' => function ( MediaWikiServices $services ) : PreferencesFactory {
$factory = new DefaultPreferencesFactory(
$services->getMainConfig(),
},
'ResourceLoader' => function ( MediaWikiServices $services ) : ResourceLoader {
- return new ResourceLoader(
- $services->getMainConfig(),
+ global $IP;
+ $config = $services->getMainConfig();
+
+ $rl = new ResourceLoader(
+ $config,
LoggerFactory::getInstance( 'resourceloader' )
);
+ $rl->addSource( $config->get( 'ResourceLoaderSources' ) );
+ $rl->register( include "$IP/resources/Resources.php" );
+
+ return $rl;
},
'RevisionFactory' => function ( MediaWikiServices $services ) : RevisionFactory {
},
'SiteLookup' => function ( MediaWikiServices $services ) : SiteLookup {
- $cacheFile = $services->getMainConfig()->get( 'SitesCacheFile' );
-
- if ( $cacheFile !== false ) {
- return new FileBasedSiteLookup( $cacheFile );
- } else {
- // Use the default SiteStore as the SiteLookup implementation for now
- return $services->getSiteStore();
- }
+ // Use SiteStore as the SiteLookup as well. This was originally separated
+ // to allow for a cacheable read-only interface (using FileBasedSiteLookup),
+ // but this was never used. SiteStore has caching (see below).
+ return $services->getSiteStore();
},
'SiteStore' => function ( MediaWikiServices $services ) : SiteStore {
},
'SpecialPageFactory' => function ( MediaWikiServices $services ) : SpecialPageFactory {
+ $config = $services->getMainConfig();
+ $options = [];
+ foreach ( SpecialPageFactory::$constructorOptions as $key ) {
+ $options[$key] = $config->get( $key );
+ }
return new SpecialPageFactory(
- $services->getMainConfig(),
+ $options,
$services->getContentLanguage()
);
},