MediaWiki REL1_37
|
This is a class for holding configuration settings, particularly for multi-wiki sites. More...
Public Member Functions | |
extractAllGlobals ( $wiki, $suffix=null, $params=[], $wikiTags=[]) | |
Retrieves the values of all settings, and places them in their corresponding global variables. | |
extractGlobal ( $setting, $wiki, $suffix=null, $params=[], $wikiTags=[]) | |
Retrieves the value of a given setting, and places it in its corresponding global variable. | |
extractGlobalSetting ( $setting, $wiki, $params) | |
extractVar ( $setting, $wiki, $suffix, &$var, $params=[], $wikiTags=[]) | |
Retrieves the value of a given setting, and places it in a variable passed by reference. | |
get ( $settingName, $wiki, $suffix=null, $params=[], $wikiTags=[]) | |
Retrieves a configuration setting for a given wiki. | |
getAll ( $wiki, $suffix=null, $params=[], $wikiTags=[]) | |
Gets all settings for a wiki. | |
getBool ( $setting, $wiki, $suffix=null, $wikiTags=[]) | |
Retrieves a configuration setting for a given wiki, forced to a boolean. | |
getConfig ( $wiki, $settings) | |
Get the resolved (post-setup) configuration of a potentially foreign wiki. | |
getLocalDatabases () | |
Retrieves an array of local databases. | |
loadFullData () | |
siteFromDB ( $wiki) | |
Work out the site and language name from a database name. | |
Public Attributes | |
string array | $fullLoadCallback = null |
Optional callback to load full configuration data. | |
$fullLoadDone = false | |
Whether or not all data has been loaded. | |
$settings = [] | |
The whole array of settings. | |
string array | $siteParamsCallback = null |
A callback function that returns an array with the following keys (all optional): | |
$suffixes = [] | |
Array of suffixes, for self::siteFromDB() | |
$wikis = [] | |
Array of wikis, should be the same as $wgLocalDatabases. | |
Protected Member Functions | |
getWikiParams ( $wiki) | |
Return specific settings for $wiki See the documentation of self::$siteParamsCallback for more in-depth documentation about this function. | |
mergeParams ( $wiki, $suffix, array $params, array $wikiTags) | |
Merge params between the ones passed to the function and the ones given by self::$siteParamsCallback for backward compatibility Values returned by self::getWikiParams() have the priority. | |
Protected Attributes | |
array | $cfgCache = [] |
Configuration cache for getConfig() | |
Private Member Functions | |
processSetting (array $thisSetting, $wiki, array $params) | |
Retrieve the configuration setting for a given wiki, based on an overrides array. | |
Static Private Member Functions | |
static | arrayMerge (array $array1, array $array2) |
Merge multiple arrays together. | |
This is a class for holding configuration settings, particularly for multi-wiki sites.
A basic synopsis:
Consider a wikifarm having three sites: two production sites, one in English and one in German, and one testing site. You can assign them easy-to-remember identifiers - ISO 639 codes 'en' and 'de' for language wikis, and 'beta' for the testing wiki.
You would thus initialize the site configuration by specifying the wiki identifiers:
When configuring the MediaWiki global settings (the $wg variables), the identifiers will be available to specify settings on a per wiki basis.
With three wikis, that is easy to manage. But what about a farm with hundreds of wikis? Site configuration provides a special keyword named 'default' which is the value used when a wiki is not found. Hence the above code could be written:
Since settings can contain arrays, site configuration provides a way to merge an array with the default. This is very useful to avoid repeating settings again and again while still maintaining specific changes on a per wiki basis.
Finally, to load all configuration settings, extract them in global context:
Definition at line 121 of file SiteConfiguration.php.
|
staticprivate |
Merge multiple arrays together.
On encountering duplicate keys, merge the two, but ONLY if they're arrays. PHP's array_merge_recursive() merges ANY duplicate values into arrays, which is not fun
array | $array1 | |
array | $array2 |
Definition at line 596 of file SiteConfiguration.php.
References arrayMerge().
Referenced by arrayMerge(), extractGlobalSetting(), getAll(), and processSetting().
SiteConfiguration::extractAllGlobals | ( | $wiki, | |
$suffix = null , |
|||
$params = [] , |
|||
$wikiTags = [] |
|||
) |
Retrieves the values of all settings, and places them in their corresponding global variables.
string | $wiki | Wiki ID of the wiki in question. |
string | null | $suffix | The suffix of the wiki in question. |
array | $params | List of parameters. $.'key' is replaced by $value in all returned data. |
array | $wikiTags | The tags assigned to the wiki. |
Definition at line 398 of file SiteConfiguration.php.
References extractGlobalSetting(), and mergeParams().
SiteConfiguration::extractGlobal | ( | $setting, | |
$wiki, | |||
$suffix = null , |
|||
$params = [] , |
|||
$wikiTags = [] |
|||
) |
Retrieves the value of a given setting, and places it in its corresponding global variable.
string | $setting | ID of the setting name to retrieve |
string | $wiki | Wiki ID of the wiki in question. |
string | null | $suffix | The suffix of the wiki in question. |
array | $params | List of parameters. $.'key' is replaced by $value in all returned data. |
array | $wikiTags | The tags assigned to the wiki. |
Definition at line 362 of file SiteConfiguration.php.
References extractGlobalSetting(), and mergeParams().
SiteConfiguration::extractGlobalSetting | ( | $setting, | |
$wiki, | |||
$params | |||
) |
string | $setting | |
string | $wiki | |
array | $params |
Definition at line 374 of file SiteConfiguration.php.
References arrayMerge(), and processSetting().
Referenced by extractAllGlobals(), and extractGlobal().
SiteConfiguration::extractVar | ( | $setting, | |
$wiki, | |||
$suffix, | |||
& | $var, | ||
$params = [] , |
|||
$wikiTags = [] |
|||
) |
Retrieves the value of a given setting, and places it in a variable passed by reference.
string | $setting | ID of the setting name to retrieve |
string | $wiki | Wiki ID of the wiki in question. |
string | $suffix | The suffix of the wiki in question. |
array | &$var | Reference The variable to insert the value into. |
array | $params | List of parameters. $.'key' is replaced by $value in all returned data. |
array | $wikiTags | The tags assigned to the wiki. |
Definition at line 345 of file SiteConfiguration.php.
SiteConfiguration::get | ( | $settingName, | |
$wiki, | |||
$suffix = null , |
|||
$params = [] , |
|||
$wikiTags = [] |
|||
) |
Retrieves a configuration setting for a given wiki.
string | $settingName | ID of the setting name to retrieve |
string | $wiki | Wiki ID of the wiki in question. |
string | null | $suffix | The suffix of the wiki in question. |
array | $params | List of parameters. $.'key' is replaced by $value in all returned data. |
array | $wikiTags | The tags assigned to the wiki. |
Definition at line 178 of file SiteConfiguration.php.
References mergeParams(), and processSetting().
SiteConfiguration::getAll | ( | $wiki, | |
$suffix = null , |
|||
$params = [] , |
|||
$wikiTags = [] |
|||
) |
Gets all settings for a wiki.
string | $wiki | Wiki ID of the wiki in question. |
string | null | $suffix | The suffix of the wiki in question. |
array | $params | List of parameters. $.'key' is replaced by $value in all returned data. |
array | $wikiTags | The tags assigned to the wiki. |
Definition at line 293 of file SiteConfiguration.php.
References arrayMerge(), mergeParams(), and processSetting().
SiteConfiguration::getBool | ( | $setting, | |
$wiki, | |||
$suffix = null , |
|||
$wikiTags = [] |
|||
) |
Retrieves a configuration setting for a given wiki, forced to a boolean.
string | $setting | ID of the setting name to retrieve |
string | $wiki | Wiki ID of the wiki in question. |
string | null | $suffix | The suffix of the wiki in question. |
array | $wikiTags | The tags assigned to the wiki. |
Definition at line 323 of file SiteConfiguration.php.
SiteConfiguration::getConfig | ( | $wiki, | |
$settings | |||
) |
Get the resolved (post-setup) configuration of a potentially foreign wiki.
For foreign wikis, this is expensive, and only works if maintenance scripts are setup to handle the –wiki parameter such as in wiki farms.
string | $wiki | |
array | string | $settings | A setting name or array of setting names |
MWException |
Definition at line 533 of file SiteConfiguration.php.
References $IP, $res, $settings, and unserialize().
SiteConfiguration::getLocalDatabases | ( | ) |
Retrieves an array of local databases.
Definition at line 332 of file SiteConfiguration.php.
References $wikis.
|
protected |
Return specific settings for $wiki See the documentation of self::$siteParamsCallback for more in-depth documentation about this function.
string | $wiki |
Definition at line 415 of file SiteConfiguration.php.
References $siteParamsCallback.
Referenced by mergeParams(), and siteFromDB().
SiteConfiguration::loadFullData | ( | ) |
Definition at line 628 of file SiteConfiguration.php.
References $fullLoadCallback.
|
protected |
Merge params between the ones passed to the function and the ones given by self::$siteParamsCallback for backward compatibility Values returned by self::getWikiParams() have the priority.
string | $wiki | Wiki ID of the wiki in question. |
string | $suffix | The suffix of the wiki in question. |
array | $params | List of parameters. $.'key' is replaced by $value in all returned data. |
array | $wikiTags | The tags assigned to the wiki. |
Definition at line 454 of file SiteConfiguration.php.
References getWikiParams().
Referenced by extractAllGlobals(), extractGlobal(), get(), and getAll().
|
private |
Retrieve the configuration setting for a given wiki, based on an overrides array.
General order of precedence:
If the "+" operator is used, with any of these, then the merges will follow the following order (earlier entries have precedence on clashing sub keys):
array | $thisSetting | An array of overrides for a given setting. |
string | $wiki | Wiki ID of the wiki in question. |
array | $params | Array of parameters. |
Definition at line 217 of file SiteConfiguration.php.
References arrayMerge().
Referenced by extractGlobalSetting(), get(), and getAll().
SiteConfiguration::siteFromDB | ( | $wiki | ) |
Work out the site and language name from a database name.
string | $wiki | Wiki ID |
Definition at line 495 of file SiteConfiguration.php.
References $lang, and getWikiParams().
|
protected |
Configuration cache for getConfig()
Definition at line 167 of file SiteConfiguration.php.
string array SiteConfiguration::$fullLoadCallback = null |
Optional callback to load full configuration data.
Definition at line 142 of file SiteConfiguration.php.
Referenced by loadFullData().
SiteConfiguration::$fullLoadDone = false |
Whether or not all data has been loaded.
Definition at line 145 of file SiteConfiguration.php.
SiteConfiguration::$settings = [] |
The whole array of settings.
Definition at line 136 of file SiteConfiguration.php.
Referenced by getConfig().
string array SiteConfiguration::$siteParamsCallback = null |
A callback function that returns an array with the following keys (all optional):
Definition at line 161 of file SiteConfiguration.php.
Referenced by getWikiParams().
SiteConfiguration::$suffixes = [] |
Array of suffixes, for self::siteFromDB()
Definition at line 126 of file SiteConfiguration.php.
SiteConfiguration::$wikis = [] |
Array of wikis, should be the same as $wgLocalDatabases.
Definition at line 131 of file SiteConfiguration.php.
Referenced by getLocalDatabases().