Merge "Don't modify $wgHooks on language object construction"
[lhc/web/wiklou.git] / includes / installer / Installer.php
index b863adc..0e8633d 100644 (file)
@@ -169,6 +169,7 @@ abstract class Installer {
                'wgEnotifUserTalk',
                'wgEnotifWatchlist',
                'wgEmailAuthentication',
+               'wgDBname',
                'wgDBtype',
                'wgDiff3',
                'wgImageMagickConvertCommand',
@@ -222,6 +223,7 @@ abstract class Installer {
                // $wgLogo is probably wrong (bug 48084); set something that will work.
                // Single quotes work fine here, as LocalSettingsGenerator outputs this unescaped.
                'wgLogo' => '$wgResourceBasePath/resources/assets/wiki.png',
+               'wgAuthenticationTokenVersion' => 1,
        );
 
        /**
@@ -359,6 +361,10 @@ abstract class Installer {
        public function __construct() {
                global $wgMessagesDirs, $wgUser;
 
+               // Don't attempt to load user language options (T126177)
+               // This will be overridden in the web installer with the user-specified language
+               RequestContext::getMain()->setLanguage( 'en' );
+
                // Disable the i18n cache
                Language::getLocalisationCache()->disableBackend();
                // Disable LoadBalancer and wfGetDB etc.
@@ -383,6 +389,7 @@ abstract class Installer {
 
                // Having a user with id = 0 safeguards us from DB access via User::loadOptions().
                $wgUser = User::newFromId( 0 );
+               RequestContext::getMain()->setUser( $wgUser );
 
                $this->settings = $this->internalDefaults;
 
@@ -403,7 +410,7 @@ abstract class Installer {
                }
 
                $this->parserTitle = Title::newFromText( 'Installer' );
-               $this->parserOptions = new ParserOptions; // language will be wrong :(
+               $this->parserOptions = new ParserOptions( $wgUser ); // language will be wrong :(
                $this->parserOptions->setEditSection( false );
        }
 
@@ -883,7 +890,13 @@ abstract class Installer {
                }
 
                if ( !$caches ) {
-                       $this->showMessage( 'config-no-cache' );
+                       $key = 'config-no-cache';
+                       // PHP >=5.5 is called APCu, earlier versions use APC (T61998).
+                       if ( !wfIsHHVM() && version_compare( PHP_VERSION, '5.5', '>=' ) ) {
+                               // config-no-cache-apcu
+                               $key .= '-apcu';
+                       }
+                       $this->showMessage( $key );
                }
 
                $this->setVar( '_Caches', $caches );
@@ -1772,6 +1785,15 @@ abstract class Installer {
 
                // Some of the environment checks make shell requests, remove limits
                $GLOBALS['wgMaxShellMemory'] = 0;
+
+               $GLOBALS['wgSessionProviders'] = array(
+                       array(
+                               'class' => 'InstallerSessionProvider',
+                               'args' => array( array(
+                                       'priority' => 1,
+                               ) )
+                       )
+               );
        }
 
        /**