MediaWiki
1.34.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 ( $wiki) | |
Work out the site and language name from a database name. More... | |
Static Public Member Functions | |
static | arrayMerge (array $array1,... $arrays) |
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 124 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 | |
array | ...$arrays |
Definition at line 589 of file SiteConfiguration.php.
Referenced by extractGlobalSetting(), getAll(), and getSetting().
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 281 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 | 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 406 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 371 of file SiteConfiguration.php.
References extractGlobalSetting(), and mergeParams().
SiteConfiguration::extractGlobalSetting | ( | $setting, | |
$wiki, | |||
$params | |||
) |
string | $setting | |
string | $wiki | |
array | $params |
Definition at line 383 of file SiteConfiguration.php.
References $GLOBALS, arrayMerge(), 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 354 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 188 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 | 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 302 of file SiteConfiguration.php.
References $GLOBALS, arrayMerge(), getSetting(), and mergeParams().
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 332 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 526 of file SiteConfiguration.php.
References $GLOBALS, $IP, $res, $settings, WikiMap\isCurrentWikiId(), and unserialize().
& SiteConfiguration::getLocalDatabases | ( | ) |
Retrieves an array of local databases.
Definition at line 341 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 203 of file SiteConfiguration.php.
References arrayMerge(), and doReplace().
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 423 of file SiteConfiguration.php.
References $siteParamsCallback.
Referenced by mergeParams(), and siteFromDB().
SiteConfiguration::loadFullData | ( | ) |
Definition at line 608 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 462 of file SiteConfiguration.php.
References getWikiParams().
Referenced by extractAllGlobals(), extractGlobal(), get(), and getAll().
SiteConfiguration::siteFromDB | ( | $wiki | ) |
Work out the site and language name from a database name.
string | $wiki | Wiki ID |
Definition at line 490 of file SiteConfiguration.php.
References $lang, and getWikiParams().
|
protected |
Configuration cache for getConfig()
Definition at line 177 of file SiteConfiguration.php.
string array SiteConfiguration::$fullLoadCallback = null |
Optional callback to load full configuration data.
Definition at line 152 of file SiteConfiguration.php.
Referenced by loadFullData().
SiteConfiguration::$fullLoadDone = false |
Whether or not all data has been loaded.
Definition at line 155 of file SiteConfiguration.php.
SiteConfiguration::$localVHosts = [] |
Array of domains that are local and can be handled by the same server.
Definition at line 146 of file SiteConfiguration.php.
SiteConfiguration::$settings = [] |
The whole array of settings.
Definition at line 139 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 171 of file SiteConfiguration.php.
Referenced by getWikiParams().
SiteConfiguration::$suffixes = [] |
Array of suffixes, for self::siteFromDB()
Definition at line 129 of file SiteConfiguration.php.
SiteConfiguration::$wikis = [] |
Array of wikis, should be the same as $wgLocalDatabases.
Definition at line 134 of file SiteConfiguration.php.
Referenced by getLocalDatabases().