MediaWiki
1.28.0
|
This is a class for holding configuration settings, particularly for multi-wiki sites. More...
Public Member Functions | |
doReplace ($from, $to, $in) | |
Type-safe string replace; won't do replacements on non-strings private? More... | |
extractAllGlobals ($wiki, $suffix=null, $params=[], $wikiTags=[]) | |
Retrieves the values of all settings, and places them in their corresponding global variables. More... | |
extractGlobal ($setting, $wiki, $suffix=null, $params=[], $wikiTags=[]) | |
Retrieves the value of a given setting, and places it in its corresponding global variable. More... | |
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. More... | |
get ($settingName, $wiki, $suffix=null, $params=[], $wikiTags=[]) | |
Retrieves a configuration setting for a given wiki. More... | |
getAll ($wiki, $suffix=null, $params=[], $wikiTags=[]) | |
Gets all settings for a wiki. More... | |
getBool ($setting, $wiki, $suffix=null, $wikiTags=[]) | |
Retrieves a configuration setting for a given wiki, forced to a boolean. More... | |
getConfig ($wiki, $settings) | |
Get the resolved (post-setup) configuration of a potentially foreign wiki. More... | |
& | getLocalDatabases () |
Retrieves an array of local databases. More... | |
loadFullData () | |
siteFromDB ($db) | |
Work out the site and language name from a database name. More... | |
Static Public Member Functions | |
static | arrayMerge ($array1) |
Merge multiple arrays together. More... | |
Public Attributes | |
string array | $fullLoadCallback = null |
Optional callback to load full configuration data. More... | |
$fullLoadDone = false | |
Whether or not all data has been loaded. More... | |
$localVHosts = [] | |
Array of domains that are local and can be handled by the same server. More... | |
$settings = [] | |
The whole array of settings. More... | |
string array | $siteParamsCallback = null |
A callback function that returns an array with the following keys (all optional): More... | |
$suffixes = [] | |
Array of suffixes, for self::siteFromDB() More... | |
$wikis = [] | |
Array of wikis, should be the same as $wgLocalDatabases. More... | |
Protected Member Functions | |
getSetting ($settingName, $wiki, array $params) | |
Really retrieves a configuration setting for a given wiki. More... | |
getWikiParams ($wiki) | |
Return specific settings for $wiki See the documentation of self::$siteParamsCallback for more in-depth documentation about this function. More... | |
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. More... | |
Protected Attributes | |
array | $cfgCache = [] |
Configuration cache for getConfig() More... | |
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 122 of file SiteConfiguration.php.
|
static |
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 |
Definition at line 583 of file SiteConfiguration.php.
SiteConfiguration::doReplace | ( | $from, | |
$to, | |||
$in | |||
) |
Type-safe string replace; won't do replacements on non-strings private?
string | $from | |
string | $to | |
string | array | $in |
Definition at line 279 of file SiteConfiguration.php.
Referenced by getSetting().
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 | $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 404 of file SiteConfiguration.php.
References as, extractGlobalSetting(), mergeParams(), and settings.
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 | $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 369 of file SiteConfiguration.php.
References extractGlobalSetting(), and mergeParams().
SiteConfiguration::extractGlobalSetting | ( | $setting, | |
$wiki, | |||
$params | |||
) |
string | $setting | |
string | $wiki | |
array | $params |
Definition at line 381 of file SiteConfiguration.php.
References $GLOBALS, $value, and getSetting().
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 352 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 | $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 186 of file SiteConfiguration.php.
References getSetting(), and mergeParams().
SiteConfiguration::getAll | ( | $wiki, | |
$suffix = null , |
|||
$params = [] , |
|||
$wikiTags = [] |
|||
) |
Gets all settings for a wiki.
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 300 of file SiteConfiguration.php.
References $GLOBALS, $value, as, getSetting(), mergeParams(), and settings.
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 | $suffix | The suffix of the wiki in question. |
array | $wikiTags | The tags assigned to the wiki. |
Definition at line 330 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 523 of file SiteConfiguration.php.
References $GLOBALS, $IP, $name, $res, $settings, array(), as, global, unserialize(), wfShellExec(), wfShellWikiCmd(), and wfWikiID().
& SiteConfiguration::getLocalDatabases | ( | ) |
Retrieves an array of local databases.
Definition at line 339 of file SiteConfiguration.php.
References $wikis.
|
protected |
Really 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. |
array | $params | Array of parameters. |
Definition at line 201 of file SiteConfiguration.php.
References $retval, $tag, $value, as, doReplace(), and settings.
Referenced by extractGlobalSetting(), get(), and getAll().
|
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 421 of file SiteConfiguration.php.
References $name, $ret, and as.
Referenced by mergeParams(), and siteFromDB().
SiteConfiguration::loadFullData | ( | ) |
Definition at line 603 of file SiteConfiguration.php.
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 460 of file SiteConfiguration.php.
References $params, $ret, and getWikiParams().
Referenced by extractAllGlobals(), extractGlobal(), get(), and getAll().
SiteConfiguration::siteFromDB | ( | $db | ) |
Work out the site and language name from a database name.
string | $db |
Definition at line 488 of file SiteConfiguration.php.
References $lang, as, and getWikiParams().
|
protected |
Configuration cache for getConfig()
Definition at line 175 of file SiteConfiguration.php.
Optional callback to load full configuration data.
Definition at line 150 of file SiteConfiguration.php.
SiteConfiguration::$fullLoadDone = false |
Whether or not all data has been loaded.
Definition at line 153 of file SiteConfiguration.php.
SiteConfiguration::$localVHosts = [] |
Array of domains that are local and can be handled by the same server.
Definition at line 144 of file SiteConfiguration.php.
SiteConfiguration::$settings = [] |
The whole array of settings.
Definition at line 137 of file SiteConfiguration.php.
Referenced by getConfig().
A callback function that returns an array with the following keys (all optional):
Definition at line 169 of file SiteConfiguration.php.
SiteConfiguration::$suffixes = [] |
Array of suffixes, for self::siteFromDB()
Definition at line 127 of file SiteConfiguration.php.
SiteConfiguration::$wikis = [] |
Array of wikis, should be the same as $wgLocalDatabases.
Definition at line 132 of file SiteConfiguration.php.
Referenced by getLocalDatabases().