Remove CryptRand and related stuff
[lhc/web/wiklou.git] / includes / ServiceWiring.php
index 3e03e86..c55fc68 100644 (file)
@@ -46,6 +46,7 @@ use MediaWiki\Linker\LinkRenderer;
 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;
@@ -133,8 +134,8 @@ return [
                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 {
@@ -149,7 +150,10 @@ return [
                $lbConf = MWLBFactory::applyDefaultConfig(
                        $mainConfig->get( 'LBFactoryConf' ),
                        $mainConfig,
-                       $services->getConfiguredReadOnlyMode()
+                       $services->getConfiguredReadOnlyMode(),
+                       $services->getLocalServerObjectCache(),
+                       $services->getMainObjectStash(),
+                       $services->getMainWANObjectCache()
                );
                $class = MWLBFactory::getLBFactoryClass( $lbConf );
 
@@ -326,6 +330,10 @@ return [
                return new MimeAnalyzer( $params );
        },
 
+       'NamespaceInfo' => function ( MediaWikiServices $services ) : NamespaceInfo {
+               return new NamespaceInfo( $services->getMainConfig() );
+       },
+
        'NameTableStoreFactory' => function ( MediaWikiServices $services ) : NameTableStoreFactory {
                return new NameTableStoreFactory(
                        $services->getDBLoadBalancerFactory(),
@@ -364,7 +372,9 @@ return [
                        $services->getContentLanguage(),
                        wfUrlProtocols(),
                        $services->getSpecialPageFactory(),
-                       $services->getMainConfig()
+                       $services->getMainConfig(),
+                       $services->getLinkRendererFactory(),
+                       $services->getNamespaceInfo()
                );
        },
 
@@ -386,6 +396,18 @@ return [
                );
        },
 
+       '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(),
@@ -414,10 +436,17 @@ return [
        },
 
        '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 {
@@ -489,14 +518,10 @@ return [
        },
 
        '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 {
@@ -549,8 +574,13 @@ return [
        },
 
        '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()
                );
        },