From 896a4c74de8991e950f33b4c8c4d761672bc8466 Mon Sep 17 00:00:00 2001 From: Aaron Schulz Date: Sat, 17 Sep 2016 19:13:21 -0700 Subject: [PATCH] Move LBFactorySingle to /libs/rdbms Also add newFromConnection() methods for cleaner looking construction since the IDatabase is fundamental and required. Change-Id: Ife478d045cee92a30c91e9004833a557488bd512 --- autoload.php | 2 +- includes/installer/DatabaseInstaller.php | 3 +-- .../rdbms/lbfactory}/LBFactorySingle.php | 10 ++++++++++ .../libs/rdbms/loadbalancer/LoadBalancerSingle.php | 10 ++++++++++ 4 files changed, 22 insertions(+), 3 deletions(-) rename includes/{db/loadbalancer => libs/rdbms/lbfactory}/LBFactorySingle.php (88%) 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/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/db/loadbalancer/LBFactorySingle.php b/includes/libs/rdbms/lbfactory/LBFactorySingle.php similarity index 88% rename from includes/db/loadbalancer/LBFactorySingle.php rename to includes/libs/rdbms/lbfactory/LBFactorySingle.php index b7607238ec..4beb5d85ea 100644 --- a/includes/db/loadbalancer/LBFactorySingle.php +++ b/includes/libs/rdbms/lbfactory/LBFactorySingle.php @@ -42,6 +42,16 @@ class LBFactorySingle extends LBFactory { $this->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 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 -- 2.20.1