Merge "Installer: page refresh should refresh list of supported DBs"
[lhc/web/wiklou.git] / includes / installer / Installer.php
index b1517e4..d41f7b8 100644 (file)
@@ -46,6 +46,14 @@ abstract class Installer {
         */
        protected $settings;
 
+
+       /**
+        * List of detected DBs, access using getCompiledDBs().
+        *
+        * @var array
+        */
+       protected $compiledDBs;
+
        /**
         * Cached DB installer instances, access using getDBInstaller().
         *
@@ -175,7 +183,6 @@ abstract class Installer {
        protected $internalDefaults = array(
                '_UserLang' => 'en',
                '_Environment' => false,
-               '_CompiledDBs' => array(),
                '_SafeMode' => false,
                '_RaiseMemory' => false,
                '_UpgradeDone' => false,
@@ -370,7 +377,7 @@ abstract class Installer {
                                }
                        }
                }
-               $this->setVar( '_CompiledDBs', $compiledDBs );
+               $this->compiledDBs = $compiledDBs;
 
                $this->parserTitle = Title::newFromText( 'Installer' );
                $this->parserOptions = new ParserOptions; // language will  be wrong :(
@@ -451,6 +458,15 @@ abstract class Installer {
                }
        }
 
+       /**
+        * Get a list of DBs supported by current PHP setup
+        *
+        * @return array
+        */
+       public function getCompiledDBs() {
+               return $this->compiledDBs;
+       }
+
        /**
         * Get an instance of DatabaseInstaller for the specified DB type.
         *
@@ -651,13 +667,7 @@ abstract class Installer {
                        $allNames[] = wfMessage( "config-type-$name" )->text();
                }
 
-               // cache initially available databases to make sure that everything will be displayed correctly
-               // after a refresh on env checks page
-               $databases = $this->getVar( '_CompiledDBs-preFilter' );
-               if ( !$databases ) {
-                       $databases = $this->getVar( '_CompiledDBs' );
-                       $this->setVar( '_CompiledDBs-preFilter', $databases );
-               }
+               $databases = $this->getCompiledDBs();
 
                $databases = array_flip ( $databases );
                foreach ( array_keys( $databases ) as $db ) {
@@ -676,7 +686,6 @@ abstract class Installer {
                        // @todo FIXME: This only works for the web installer!
                        return false;
                }
-               $this->setVar( '_CompiledDBs', $databases );
                return true;
        }
 
@@ -1075,22 +1084,16 @@ abstract class Installer {
        }
 
        /**
-        * Checks if suhosin.get.max_value_length is set, and if so, sets
-        * $wgResourceLoaderMaxQueryLength to that value in the generated
-        * LocalSettings file
+        * Checks if suhosin.get.max_value_length is set, and if so generate
+        * a warning because it decreases ResourceLoader performance.
         * @return bool
         */
        protected function envCheckSuhosinMaxValueLength() {
                $maxValueLength = ini_get( 'suhosin.get.max_value_length' );
-               if ( $maxValueLength > 0 ) {
-                       if ( $maxValueLength < 1024 ) {
-                               # Only warn if the value is below the sane 1024
-                               $this->showMessage( 'config-suhosin-max-value-length', $maxValueLength );
-                       }
-               } else {
-                       $maxValueLength = -1;
+               if ( $maxValueLength > 0 &&  $maxValueLength < 1024 ) {
+                       // Only warn if the value is below the sane 1024
+                       $this->showMessage( 'config-suhosin-max-value-length', $maxValueLength );
                }
-               $this->setVar( 'wgResourceLoaderMaxQueryLength', $maxValueLength );
                return true;
        }