MediaWiki  1.23.0
LBFactory Class Reference

An interface for generating database load balancers. More...

Inheritance diagram for LBFactory:

Public Member Functions

 __construct ( $conf)
 Construct a factory based on a configuration array (typically from $wgLBFactoryConf) More...
 
 callMethod ( $loadBalancer, $methodName, $args)
 Private helper for forEachLBCallMethod. More...
 
 commitMasterChanges ()
 Commit changes on all master connections. More...
 
 forEachLB ( $callback, $params=array())
 Execute a function for each tracked load balancer The callback is called with the load balancer as the first parameter, and $params passed as the subsequent parameters. More...
 
 forEachLBCallMethod ( $methodName, $args=array())
 Call a method of each tracked load balancer. More...
 
getExternalLB ( $cluster, $wiki=false)
 Get a cached (tracked) load balancer for external storage. More...
 
 getMainLB ( $wiki=false)
 Get a cached (tracked) load balancer object. More...
 
 hasMasterChanges ()
 Detemine if any master connection has pending changes. More...
 
 newExternalLB ( $cluster, $wiki=false)
 Create a new load balancer for external storage. More...
 
 newMainLB ( $wiki=false)
 Create a new load balancer object. More...
 
 rollbackMasterChanges ()
 Rollback changes on all master connections. More...
 
 shutdown ()
 Prepare all tracked load balancers for shutdown STUB. More...
 

Static Public Member Functions

static destroyInstance ()
 Shut down, close connections and destroy the cached instance. More...
 
static disableBackend ()
 Disables all access to the load balancer, will cause all database access to throw a DBAccessError. More...
 
static getLBFactoryClass (array $config)
 Returns the LBFactory class to use and the load balancer configuration. More...
 
static setInstance ( $instance)
 Set the instance to be the given object. More...
 
static & singleton ()
 Get an LBFactory instance. More...
 

Static Protected Attributes

static $instance
 

Detailed Description

An interface for generating database load balancers.

Definition at line 28 of file LBFactory.php.

Constructor & Destructor Documentation

◆ __construct()

LBFactory::__construct (   $conf)
abstract

Construct a factory based on a configuration array (typically from $wgLBFactoryConf)

Parameters
array$conf

Reimplemented in LBFactoryFake, LBFactorySimple, LBFactoryMulti, and LBFactorySingle.

Member Function Documentation

◆ callMethod()

LBFactory::callMethod (   $loadBalancer,
  $methodName,
  $args 
)

Private helper for forEachLBCallMethod.

Parameters
LoadBalancer$loadBalancer
string$methodName
$args

Definition at line 184 of file LBFactory.php.

References $args, and array().

◆ commitMasterChanges()

LBFactory::commitMasterChanges ( )

Commit changes on all master connections.

Definition at line 191 of file LBFactory.php.

References forEachLBCallMethod().

Referenced by LBFactorySimple\shutdown(), and LBFactoryMulti\shutdown().

◆ destroyInstance()

static LBFactory::destroyInstance ( )
static

Shut down, close connections and destroy the cached instance.

Definition at line 90 of file LBFactory.php.

Referenced by Maintenance\finalSetup(), and setInstance().

◆ disableBackend()

static LBFactory::disableBackend ( )
static

Disables all access to the load balancer, will cause all database access to throw a DBAccessError.

Definition at line 36 of file LBFactory.php.

References global.

Referenced by Installer\__construct().

◆ forEachLB()

LBFactory::forEachLB (   $callback,
  $params = array() 
)
abstract

Execute a function for each tracked load balancer The callback is called with the load balancer as the first parameter, and $params passed as the subsequent parameters.

Parameters
callable$callback
array$params

Reimplemented in LBFactoryFake, LBFactoryMulti, LBFactorySimple, and LBFactorySingle.

Referenced by forEachLBCallMethod(), and hasMasterChanges().

◆ forEachLBCallMethod()

LBFactory::forEachLBCallMethod (   $methodName,
  $args = array() 
)

Call a method of each tracked load balancer.

Parameters
string$methodName
array$args

Definition at line 174 of file LBFactory.php.

References $args, array(), and forEachLB().

Referenced by commitMasterChanges(), and rollbackMasterChanges().

◆ getExternalLB()

& LBFactory::getExternalLB (   $cluster,
  $wiki = false 
)
abstract

Get a cached (tracked) load balancer for external storage.

Parameters
string$clusterexternal storage cluster, or false for core
bool | string$wikiWiki ID, or false for the current wiki
Returns
LoadBalancer

Reimplemented in LBFactoryFake, LBFactorySimple, LBFactoryMulti, and LBFactorySingle.

◆ getLBFactoryClass()

static LBFactory::getLBFactoryClass ( array  $config)
static

Returns the LBFactory class to use and the load balancer configuration.

Parameters
array$config(e.g. $wgLBFactoryConf)
Returns
string class name

Definition at line 64 of file LBFactory.php.

References array(), and wfDeprecated().

Referenced by singleton(), and LBFactoryTest\testGetLBFactoryClass().

◆ getMainLB()

LBFactory::getMainLB (   $wiki = false)
abstract

Get a cached (tracked) load balancer object.

Parameters
bool | string$wikiWiki ID, or false for the current wiki
Returns
LoadBalancer

Reimplemented in LBFactoryFake, LBFactorySimple, LBFactoryMulti, and LBFactorySingle.

◆ hasMasterChanges()

LBFactory::hasMasterChanges ( )

Detemine if any master connection has pending changes.

Since
1.23
Returns
bool

Definition at line 208 of file LBFactory.php.

References $lb, $ret, and forEachLB().

◆ newExternalLB()

LBFactory::newExternalLB (   $cluster,
  $wiki = false 
)
abstract

Create a new load balancer for external storage.

The resulting object will be untracked, not chronology-protected, and the caller is responsible for cleaning it up.

Parameters
string$clusterExternal storage cluster, or false for core
bool | string$wikiWiki ID, or false for the current wiki
Returns
LoadBalancer

Reimplemented in LBFactoryFake, LBFactorySimple, LBFactoryMulti, and LBFactorySingle.

◆ newMainLB()

LBFactory::newMainLB (   $wiki = false)
abstract

Create a new load balancer object.

The resulting object will be untracked, not chronology-protected, and the caller is responsible for cleaning it up.

Parameters
bool | string$wikiWiki ID, or false for the current wiki
Returns
LoadBalancer

Reimplemented in LBFactoryFake, LBFactorySimple, LBFactoryMulti, and LBFactorySingle.

◆ rollbackMasterChanges()

LBFactory::rollbackMasterChanges ( )

Rollback changes on all master connections.

Since
1.23

Definition at line 199 of file LBFactory.php.

References forEachLBCallMethod().

◆ setInstance()

static LBFactory::setInstance (   $instance)
static

Set the instance to be the given object.

Parameters
LBFactory$instance

Definition at line 103 of file LBFactory.php.

References $instance, and destroyInstance().

Referenced by DatabaseInstaller\enableLB().

◆ shutdown()

LBFactory::shutdown ( )

Prepare all tracked load balancers for shutdown STUB.

Reimplemented in LBFactoryMulti, and LBFactorySimple.

Definition at line 165 of file LBFactory.php.

◆ singleton()

static& LBFactory::singleton ( )
static

Get an LBFactory instance.

Returns
LBFactory

Definition at line 46 of file LBFactory.php.

References $instance, getLBFactoryClass(), and global.

Member Data Documentation

◆ $instance

LBFactory::$instance
staticprotected

Definition at line 30 of file LBFactory.php.

Referenced by setInstance(), and singleton().


The documentation for this class was generated from the following file: