From: Aaron Schulz Date: Sun, 18 Sep 2016 02:13:21 +0000 (-0700) Subject: Move LBFactorySingle to /libs/rdbms X-Git-Tag: 1.31.0-rc.0~5484^2 X-Git-Url: http://git.cyclocoop.org/%7B%24www_url%7Dadmin/compta/operations/?a=commitdiff_plain;h=896a4c74de8991e950f33b4c8c4d761672bc8466;p=lhc%2Fweb%2Fwiklou.git Move LBFactorySingle to /libs/rdbms Also add newFromConnection() methods for cleaner looking construction since the IDatabase is fundamental and required. Change-Id: Ife478d045cee92a30c91e9004833a557488bd512 --- diff --git a/autoload.php b/autoload.php index a07df966cc..094c70219e 100644 --- a/autoload.php +++ b/autoload.php @@ -661,7 +661,7 @@ $wgAutoloadLocalClasses = [ 'LBFactoryMW' => __DIR__ . '/includes/db/loadbalancer/LBFactoryMW.php', 'LBFactoryMulti' => __DIR__ . '/includes/libs/rdbms/lbfactory/LBFactoryMulti.php', 'LBFactorySimple' => __DIR__ . '/includes/libs/rdbms/lbfactory/LBFactorySimple.php', - 'LBFactorySingle' => __DIR__ . '/includes/db/loadbalancer/LBFactorySingle.php', + 'LBFactorySingle' => __DIR__ . '/includes/libs/rdbms/lbfactory/LBFactorySingle.php', 'LCStore' => __DIR__ . '/includes/cache/localisation/LCStore.php', 'LCStoreCDB' => __DIR__ . '/includes/cache/localisation/LCStoreCDB.php', 'LCStoreDB' => __DIR__ . '/includes/cache/localisation/LCStoreDB.php', diff --git a/includes/db/loadbalancer/LBFactorySingle.php b/includes/db/loadbalancer/LBFactorySingle.php deleted file mode 100644 index b7607238ec..0000000000 --- a/includes/db/loadbalancer/LBFactorySingle.php +++ /dev/null @@ -1,86 +0,0 @@ -lb = new LoadBalancerSingle( array_merge( $this->baseLoadBalancerParams(), $conf ) ); - } - - /** - * @param bool|string $wiki - * @return LoadBalancerSingle - */ - public function newMainLB( $wiki = false ) { - return $this->lb; - } - - /** - * @param bool|string $wiki - * @return LoadBalancerSingle - */ - public function getMainLB( $wiki = false ) { - return $this->lb; - } - - /** - * @param string $cluster External storage cluster, or false for core - * @param bool|string $wiki Wiki ID, or false for the current wiki - * @return LoadBalancerSingle - */ - protected function newExternalLB( $cluster, $wiki = false ) { - return $this->lb; - } - - /** - * @param string $cluster External storage cluster, or false for core - * @param bool|string $wiki Wiki ID, or false for the current wiki - * @return LoadBalancerSingle - */ - public function getExternalLB( $cluster, $wiki = false ) { - return $this->lb; - } - - /** - * @param string|callable $callback - * @param array $params - */ - public function forEachLB( $callback, array $params = [] ) { - call_user_func_array( $callback, array_merge( [ $this->lb ], $params ) ); - } -} diff --git a/includes/installer/DatabaseInstaller.php b/includes/installer/DatabaseInstaller.php index ded2bd8aba..4f10367e6a 100644 --- a/includes/installer/DatabaseInstaller.php +++ b/includes/installer/DatabaseInstaller.php @@ -334,8 +334,7 @@ abstract class DatabaseInstaller { $connection = $status->value; $services->redefineService( 'DBLoadBalancerFactory', function() use ( $connection ) { - return new LBFactorySingle( [ - 'connection' => $connection ] ); + return LBFactorySingle::newFromConnection( $connection ); } ); } diff --git a/includes/libs/rdbms/lbfactory/LBFactorySingle.php b/includes/libs/rdbms/lbfactory/LBFactorySingle.php new file mode 100644 index 0000000000..4beb5d85ea --- /dev/null +++ b/includes/libs/rdbms/lbfactory/LBFactorySingle.php @@ -0,0 +1,96 @@ +lb = new LoadBalancerSingle( array_merge( $this->baseLoadBalancerParams(), $conf ) ); + } + + /** + * @param IDatabase $db Live connection handle + * @param array $params Parameter map to LBFactorySingle::__constructs() + * @return LBFactorySingle + * @since 1.28 + */ + public static function newFromConnection( IDatabase $db, array $params = [] ) { + return new static( [ 'connection' => $db ] + $params ); + } + + /** + * @param bool|string $wiki + * @return LoadBalancerSingle + */ + public function newMainLB( $wiki = false ) { + return $this->lb; + } + + /** + * @param bool|string $wiki + * @return LoadBalancerSingle + */ + public function getMainLB( $wiki = false ) { + return $this->lb; + } + + /** + * @param string $cluster External storage cluster, or false for core + * @param bool|string $wiki Wiki ID, or false for the current wiki + * @return LoadBalancerSingle + */ + protected function newExternalLB( $cluster, $wiki = false ) { + return $this->lb; + } + + /** + * @param string $cluster External storage cluster, or false for core + * @param bool|string $wiki Wiki ID, or false for the current wiki + * @return LoadBalancerSingle + */ + public function getExternalLB( $cluster, $wiki = false ) { + return $this->lb; + } + + /** + * @param string|callable $callback + * @param array $params + */ + public function forEachLB( $callback, array $params = [] ) { + call_user_func_array( $callback, array_merge( [ $this->lb ], $params ) ); + } +} diff --git a/includes/libs/rdbms/loadbalancer/LoadBalancerSingle.php b/includes/libs/rdbms/loadbalancer/LoadBalancerSingle.php index 943fcf9e96..9de4850fc1 100644 --- a/includes/libs/rdbms/loadbalancer/LoadBalancerSingle.php +++ b/includes/libs/rdbms/loadbalancer/LoadBalancerSingle.php @@ -58,6 +58,16 @@ class LoadBalancerSingle extends LoadBalancer { } } + /** + * @param IDatabase $db Live connection handle + * @param array $params Parameter map to LoadBalancerSingle::__constructs() + * @return LoadBalancerSingle + * @since 1.28 + */ + public static function newFromConnection( IDatabase $db, array $params = [] ) { + return new static( [ 'connection' => $db ] + $params ); + } + /** * * @param string $server