From: Aaron Schulz Date: Sun, 18 Sep 2016 01:04:42 +0000 (-0700) Subject: Move LoadBalancerSingle to /libs/rdbms X-Git-Tag: 1.31.0-rc.0~5500^2 X-Git-Url: http://git.cyclocoop.org/%7D%7Cconcat%7B?a=commitdiff_plain;h=e2adcc89bbe;p=lhc%2Fweb%2Fwiklou.git Move LoadBalancerSingle to /libs/rdbms Change-Id: I2e8177ca8fa6b9fcdec87e44f0cfeb11bb71f2bc --- diff --git a/autoload.php b/autoload.php index 3da4010e6a..c3c3b0783c 100644 --- a/autoload.php +++ b/autoload.php @@ -733,7 +733,7 @@ $wgAutoloadLocalClasses = [ 'ListVariants' => __DIR__ . '/maintenance/language/listVariants.php', 'ListredirectsPage' => __DIR__ . '/includes/specials/SpecialListredirects.php', 'LoadBalancer' => __DIR__ . '/includes/libs/rdbms/loadbalancer/LoadBalancer.php', - 'LoadBalancerSingle' => __DIR__ . '/includes/db/loadbalancer/LBFactorySingle.php', + 'LoadBalancerSingle' => __DIR__ . '/includes/libs/rdbms/lbfactory/LBFactorySingle.php', 'LoadMonitor' => __DIR__ . '/includes/libs/rdbms/loadmonitor/LoadMonitor.php', 'LoadMonitorMySQL' => __DIR__ . '/includes/libs/rdbms/loadmonitor/LoadMonitorMySQL.php', 'LoadMonitorNull' => __DIR__ . '/includes/libs/rdbms/loadmonitor/LoadMonitorNull.php', diff --git a/includes/db/loadbalancer/LBFactorySingle.php b/includes/db/loadbalancer/LBFactorySingle.php index 3937dfd059..b7607238ec 100644 --- a/includes/db/loadbalancer/LBFactorySingle.php +++ b/includes/db/loadbalancer/LBFactorySingle.php @@ -35,6 +35,10 @@ class LBFactorySingle extends LBFactory { public function __construct( array $conf ) { parent::__construct( $conf ); + if ( !isset( $conf['connection'] ) ) { + throw new InvalidArgumentException( "Missing 'connection' argument." ); + } + $this->lb = new LoadBalancerSingle( array_merge( $this->baseLoadBalancerParams(), $conf ) ); } @@ -80,47 +84,3 @@ class LBFactorySingle extends LBFactory { call_user_func_array( $callback, array_merge( [ $this->lb ], $params ) ); } } - -/** - * Helper class for LBFactorySingle. - */ -class LoadBalancerSingle extends LoadBalancer { - /** @var IDatabase */ - private $db; - - /** - * @param array $params - */ - public function __construct( array $params ) { - $this->db = $params['connection']; - - parent::__construct( [ - 'servers' => [ - [ - 'type' => $this->db->getType(), - 'host' => $this->db->getServer(), - 'dbname' => $this->db->getDBname(), - 'load' => 1, - ] - ], - 'trxProfiler' => isset( $params['trxProfiler'] ) ? $params['trxProfiler'] : null, - 'srvCache' => isset( $params['srvCache'] ) ? $params['srvCache'] : null, - 'wanCache' => isset( $params['wanCache'] ) ? $params['wanCache'] : null - ] ); - - if ( isset( $params['readOnlyReason'] ) ) { - $this->db->setLBInfo( 'readOnlyReason', $params['readOnlyReason'] ); - } - } - - /** - * - * @param string $server - * @param bool $dbNameOverride - * - * @return IDatabase - */ - protected function reallyOpenConnection( $server, $dbNameOverride = false ) { - return $this->db; - } -} diff --git a/includes/libs/rdbms/lbfactory/LBFactorySingle.php b/includes/libs/rdbms/lbfactory/LBFactorySingle.php new file mode 100644 index 0000000000..943fcf9e96 --- /dev/null +++ b/includes/libs/rdbms/lbfactory/LBFactorySingle.php @@ -0,0 +1,71 @@ +db = $params['connection']; + + parent::__construct( [ + 'servers' => [ + [ + 'type' => $this->db->getType(), + 'host' => $this->db->getServer(), + 'dbname' => $this->db->getDBname(), + 'load' => 1, + ] + ], + 'trxProfiler' => isset( $params['trxProfiler'] ) ? $params['trxProfiler'] : null, + 'srvCache' => isset( $params['srvCache'] ) ? $params['srvCache'] : null, + 'wanCache' => isset( $params['wanCache'] ) ? $params['wanCache'] : null + ] ); + + if ( isset( $params['readOnlyReason'] ) ) { + $this->db->setLBInfo( 'readOnlyReason', $params['readOnlyReason'] ); + } + } + + /** + * + * @param string $server + * @param bool $dbNameOverride + * + * @return IDatabase + */ + protected function reallyOpenConnection( $server, $dbNameOverride = false ) { + return $this->db; + } +}