Merge "Installer: page refresh should refresh list of supported DBs"
[lhc/web/wiklou.git] / includes / installer / Installer.php
index 8362772..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;
        }