From: Aaron Schulz Date: Thu, 15 Sep 2016 11:22:57 +0000 (-0700) Subject: Remove global state from DatabaseBase::__construct() X-Git-Tag: 1.31.0-rc.0~5553^2 X-Git-Url: http://git.cyclocoop.org/%22%20.%20generer_url_aide%28?a=commitdiff_plain;h=4660b56f55ba17e90cc2557d85b4cd931f3a2989;p=lhc%2Fweb%2Fwiklou.git Remove global state from DatabaseBase::__construct() Change-Id: Iba347fce8f0f531aa7e565bb8806260bcbf04a98 --- diff --git a/includes/db/Database.php b/includes/db/Database.php index 0c357cc9ed..917bc910dc 100644 --- a/includes/db/Database.php +++ b/includes/db/Database.php @@ -239,18 +239,14 @@ abstract class DatabaseBase implements IDatabase, LoggerAwareInterface { * @param array $params Parameters passed from DatabaseBase::factory() */ function __construct( array $params ) { - global $wgDBprefix, $wgDBmwschema; - - $this->srvCache = ObjectCache::getLocalServerInstance( 'hash' ); - $server = $params['host']; $user = $params['user']; $password = $params['password']; $dbName = $params['dbname']; $flags = $params['flags']; - $tablePrefix = $params['tablePrefix']; - $schema = $params['schema']; - $foreign = $params['foreign']; + + $this->mSchema = $params['schema']; + $this->mTablePrefix = $params['tablePrefix']; $this->cliMode = isset( $params['cliMode'] ) ? $params['cliMode'] @@ -267,21 +263,11 @@ abstract class DatabaseBase implements IDatabase, LoggerAwareInterface { $this->mSessionVars = $params['variables']; - /** Get the default table prefix*/ - if ( $tablePrefix === 'get from global' ) { - $this->mTablePrefix = $wgDBprefix; - } else { - $this->mTablePrefix = $tablePrefix; - } - - /** Get the database schema*/ - if ( $schema === 'get from global' ) { - $this->mSchema = $wgDBmwschema; - } else { - $this->mSchema = $schema; - } + $this->mForeign = $params['foreign']; - $this->mForeign = $foreign; + $this->srvCache = isset( $params['srvCache'] ) + ? $params['srvCache'] + : new EmptyBagOStuff(); $this->profiler = isset( $params['profiler'] ) ? $params['profiler'] @@ -378,7 +364,7 @@ abstract class DatabaseBase implements IDatabase, LoggerAwareInterface { $p['dbname'] = isset( $p['dbname'] ) ? $p['dbname'] : false; $p['flags'] = isset( $p['flags'] ) ? $p['flags'] : 0; $p['variables'] = isset( $p['variables'] ) ? $p['variables'] : []; - $p['tablePrefix'] = isset( $p['tablePrefix'] ) ? $p['tablePrefix'] : 'get from global'; + $p['tablePrefix'] = isset( $p['tablePrefix'] ) ? $p['tablePrefix'] : ''; if ( !isset( $p['schema'] ) ) { $p['schema'] = isset( $defaultSchemas[$dbType] ) ? $defaultSchemas[$dbType] : null; } diff --git a/includes/db/loadbalancer/LBFactorySimple.php b/includes/db/loadbalancer/LBFactorySimple.php index 908453caa5..9e9c2f10dd 100644 --- a/includes/db/loadbalancer/LBFactorySimple.php +++ b/includes/db/loadbalancer/LBFactorySimple.php @@ -46,7 +46,7 @@ class LBFactorySimple extends LBFactory { * @return LoadBalancer */ public function newMainLB( $wiki = false ) { - global $wgDBservers; + global $wgDBservers, $wgDBprefix, $wgDBmwschema; if ( is_array( $wgDBservers ) ) { $servers = $wgDBservers; @@ -56,7 +56,11 @@ class LBFactorySimple extends LBFactory { } else { $server['replica'] = true; } - $server += [ 'flags' => DBO_DEFAULT ]; + $server += [ + 'schema' => $wgDBmwschema, + 'tablePrefix' => $wgDBprefix, + 'flags' => DBO_DEFAULT + ]; } } else { global $wgDBserver, $wgDBuser, $wgDBpassword, $wgDBname, $wgDBtype, $wgDebugDumpSql; @@ -78,6 +82,8 @@ class LBFactorySimple extends LBFactory { 'user' => $wgDBuser, 'password' => $wgDBpassword, 'dbname' => $wgDBname, + 'schema' => $wgDBmwschema, + 'tablePrefix' => $wgDBprefix, 'type' => $wgDBtype, 'load' => 1, 'flags' => $flags, diff --git a/includes/libs/rdbms/loadbalancer/LoadBalancer.php b/includes/libs/rdbms/loadbalancer/LoadBalancer.php index 903c160968..824279dc8b 100644 --- a/includes/libs/rdbms/loadbalancer/LoadBalancer.php +++ b/includes/libs/rdbms/loadbalancer/LoadBalancer.php @@ -803,6 +803,7 @@ class LoadBalancer implements ILoadBalancer { "{$this->connsOpened}+ connections made (master=$masterName)" ); } + $server['srvCache'] = $this->srvCache; // Set loggers $server['connLogger'] = $this->connLogger; $server['queryLogger'] = $this->queryLogger;