MediaWiki  1.30.0
EtcdConfig Class Reference

Interface for configuration instances. More...

Inheritance diagram for EtcdConfig:
Collaboration diagram for EtcdConfig:

Public Member Functions

 __construct (array $params)
 
 fetchAllFromEtcd ()
 
 get ( $name)
 
 has ( $name)
 
 setLogger (LoggerInterface $logger)
 

Protected Member Functions

 fetchAllFromEtcdServer ( $address)
 
 parseDirectory ( $dirName, $dirNode, &$config)
 Recursively parse a directory node and populate the array passed by reference, throwing EtcdConfigParseError if there is a validation error. More...
 
 parseResponse ( $rbody)
 Parse a response body, throwing EtcdConfigParseError if there is a validation error. More...
 

Private Member Functions

 load ()
 
 unserialize ( $string)
 

Private Attributes

int $baseCacheTTL
 
string $directory
 
string $encoding
 
string $host
 
MultiHttpClient $http
 
LoggerInterface $logger
 
array $procCache
 
string $protocol
 
int $skewCacheTTL
 
BagOStuff $srvCache
 
int $timeout
 

Detailed Description

Interface for configuration instances.

Since
1.29

Definition at line 30 of file EtcdConfig.php.

Constructor & Destructor Documentation

◆ __construct()

EtcdConfig::__construct ( array  $params)
Parameters
array$paramsParameter map:
  • host: the host address and port
  • protocol: either http or https
  • directory: the etc "directory" were MediaWiki specific variables are located
  • encoding: one of ("JSON", "YAML"). Defaults to JSON. [optional]
  • cache: BagOStuff instance or ObjectFactory spec thereof for a server cache. The cache will also be used as a fallback if etcd is down. [optional]
  • cacheTTL: logical cache TTL in seconds [optional]
  • skewTTL: maximum seconds to randomly lower the assigned TTL on cache save [optional]
  • timeout: seconds to wait for etcd before throwing an error [optional]

Definition at line 67 of file EtcdConfig.php.

References $params, directory, ObjectFactory\getObjectFromSpec(), and http.

Member Function Documentation

◆ fetchAllFromEtcd()

EtcdConfig::fetchAllFromEtcd ( )
Returns
array (config array or null, error string, allow retries)

Definition at line 199 of file EtcdConfig.php.

References $host, IP\combineHostAndPort(), fetchAllFromEtcdServer(), and list.

Referenced by load().

◆ fetchAllFromEtcdServer()

EtcdConfig::fetchAllFromEtcdServer (   $address)
protected
Parameters
string$addressHost and port
Returns
array (config array or null, error string, whether to allow retries)

Definition at line 227 of file EtcdConfig.php.

References $e, false, http, list, parseResponse(), and true.

Referenced by fetchAllFromEtcd().

◆ get()

EtcdConfig::get (   $name)

Definition at line 111 of file EtcdConfig.php.

References $name, and load().

◆ has()

EtcdConfig::has (   $name)

Definition at line 105 of file EtcdConfig.php.

References $name, and load().

◆ load()

EtcdConfig::load ( )
private
Exceptions
ConfigException

Definition at line 124 of file EtcdConfig.php.

References $baseCacheTTL, $skewCacheTTL, $timeout, directory, fetchAllFromEtcd(), list, IExpiringStore\TTL_INDEFINITE, and use.

Referenced by get(), and has().

◆ parseDirectory()

EtcdConfig::parseDirectory (   $dirName,
  $dirNode,
$config 
)
protected

Recursively parse a directory node and populate the array passed by reference, throwing EtcdConfigParseError if there is a validation error.

Parameters
string$dirNameThe relative directory name
array$dirNodeThe decoded directory node
array&$configThe output array

Definition at line 278 of file EtcdConfig.php.

References $value, as, and unserialize().

Referenced by parseResponse().

◆ parseResponse()

EtcdConfig::parseResponse (   $rbody)
protected

Parse a response body, throwing EtcdConfigParseError if there is a validation error.

Parameters
string$rbody
Returns
array

Definition at line 256 of file EtcdConfig.php.

References parseDirectory().

Referenced by fetchAllFromEtcdServer().

◆ setLogger()

EtcdConfig::setLogger ( LoggerInterface  $logger)

Definition at line 100 of file EtcdConfig.php.

References $logger, and http.

◆ unserialize()

EtcdConfig::unserialize (   $string)
private
Parameters
string$string
Returns
mixed

Definition at line 308 of file EtcdConfig.php.

Referenced by parseDirectory().

Member Data Documentation

◆ $baseCacheTTL

int EtcdConfig::$baseCacheTTL
private

Definition at line 49 of file EtcdConfig.php.

Referenced by load().

◆ $directory

string EtcdConfig::$directory
private

Definition at line 45 of file EtcdConfig.php.

◆ $encoding

string EtcdConfig::$encoding
private

Definition at line 47 of file EtcdConfig.php.

◆ $host

string EtcdConfig::$host
private

Definition at line 41 of file EtcdConfig.php.

Referenced by fetchAllFromEtcd().

◆ $http

MultiHttpClient EtcdConfig::$http
private

Definition at line 32 of file EtcdConfig.php.

◆ $logger

LoggerInterface EtcdConfig::$logger
private

Definition at line 38 of file EtcdConfig.php.

Referenced by setLogger().

◆ $procCache

array EtcdConfig::$procCache
private

Definition at line 36 of file EtcdConfig.php.

◆ $protocol

string EtcdConfig::$protocol
private

Definition at line 43 of file EtcdConfig.php.

◆ $skewCacheTTL

int EtcdConfig::$skewCacheTTL
private

Definition at line 51 of file EtcdConfig.php.

Referenced by load().

◆ $srvCache

BagOStuff EtcdConfig::$srvCache
private

Definition at line 34 of file EtcdConfig.php.

◆ $timeout

int EtcdConfig::$timeout
private

Definition at line 53 of file EtcdConfig.php.

Referenced by load().


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