Manual:$wgConf

Details
Create a site configuration object. Not used for much in a default install.

This is used on wikim-conf>Special:MyLanguage/Manual:$wgConf#Wikimedia configuration|Wikimedia's mass installation to provide a centralized configuration file for a few hundred wikis, providing defaults per site group and per-wiki overrides.

It can be a bit confusing, though. :)

Currently needed by ext-centauth>Special:MyLanguage/Extension:CentralAuth|Extension:CentralAuth to fetch per-site information, eg linking to the proper user pages on each wiki.

Configuration
Wikis are grouped by the suffix on their database names; on a large installation there may be e.g. 'enwiki' and 'enwiktionary' and 'enwikibooks', each in a different suffix group. Suffixes have to be declared in the  member variable of $wgConf if you want to use.

is the array of settings. Its format is. Settings may be assigned to (from the more specific to the less specific, this is the  part of   as mentioned above):
 * a specific DB name.
 * a wiki tag (since 1.12.0)
 * a suffix (eg 'wiki' or 'wiktionary') to affect all in that suffix group (can be determined with )
 * 'default' to affect all wikis

For string settings, you can define parameters that will be replaced when extracting the settings. It can be useful when the setting has the same format for all wikis. The format is. Be careful to use single quotes or to escape the    or it will be replaced with the PHP variable (that can be not defined at that time).

1.13 and earlier
When extracting global settings, the object will search first the more specific level (the first one in the list above) and if it doesn't find the setting, it will search in less specific levels. When it finds one, if won't search for less specific ones. This means that you have to pay attention for some specific settings, such as man-gperm>Special:MyLanguage/Manual:$wgGroupPermissions|$wgGroupPermissions, because it doesn't merge the setting with less specific levels, nor the default value (the one in DefaultSettings.php), you'll need to do it by yourself.

To extract the settings in global variables, you can use.

Parameters are:
 * : Wiki's database name (generally man-dbname>Special:MyLanguage/Manual:$wgDBname|$wgDBname). You have to define it yourself.
 * : Wiki's suffix, used to to get the suffix level.
 * : array of parameters mapping its name to its value.
 * : (since 1.12.0) array of wiki tags.

1.14 and newer
Some new features were added in 1.14.0. The conf113>Special:MyLanguage/Manual:$wgConf#1.13 and earlier|1.13 and earlier part can still be used though.

Callback function
Since 1.14, a [http://www.php.net/manual/en/language.pseudo-types.php#language.types.callback callback] has been introduced to be able to modify the parameters passed to  and related function. It might be used to change parameters when such functions are called after LocalSettings.php (this is the case with CentralAuth). You can define it in. Tht-e callback function will receive the SiteConfiguration object in the first argument and the wiki name in the second one. It has to return an array with the following keys (all optional):


 * : site's suffix (corresponding to $suffix paramater of  and similar)
 * : site's lang
 * : array of wiki tags (corresponding to $wikiTags parameter)
 * : array of parameters to be replaced (corresponding to $params parameter)

They'll be merged with the parameters passed to  and similar functions. If the  and   are filled, the they'll be used to override the default behaviour of.

Settings merging
Arrays can now be merged. This might be useful for. To use it, you have to prefix the keys with a "+" for the settings you want to merge. The two possibilities can be used together.
 * To merge your customized version of the setting with the one in DefaultSettings.php, prefix the setting's name with "+" (such as )
 * To merge a more specific level with a less-specific one, prefix the level with a "+".

Example with man-gperm>Special:MyLanguage/Manual:$wgGroupPermissions|$wgGroupPermissions:

The basic syntax is thus:

Example
This example uses 3 wikis:,   and. They are located at  (i.e. ,   and  ).

It assumes that  is already defined. In this example,  is declared in init-set>Special:MyLanguage/InitialiseSettings.php|InitialiseSettings.php, this is not required and can be done in LocalSettings.php.

Wikimedia configuration
To see how Wikimedia uses  to configure its wikis see:
 * [http://noc.wikimedia.org/conf/highlight.php?file=CommonSettings.php CommonSettings.php] (Wikimedia's version of LocalSettings.php)
 * [http://noc.wikimedia.org/conf/highlight.php?file=InitialiseSettings.php InitialiseSettings.php] (for )
 * [http://noc.wikimedia.org/conf/highlight.php?file=wgConf.php wgConf.php] (used by CommonSettings.php to initialize $wgConf)