Manual:$wgConf
| グローバル オブジェクト: $wgConf | |
|---|---|
| サイト設定のオブジェクトを作成します。初期設定のままインストールする場合はほとんど使われません。 |
|
| 導入されたバージョン: | 1.5.0 (r9670) |
| 除去されたバージョン: | 使用中 |
| 許容される値: | 未指定 |
| 既定値: | 新しいSiteConfigurationオブジェクト |
| その他の設定: アルファベット順 | 機能順 | |
詳細
サイト設定のオブジェクトを作成します。初期設定のままインストールする場合はほとんど使われません。
この設定はWikimediaの大規模インストールを行う際、数百のウィキに対する設定を集約するのに用いられるもので、サイトグループごとの初期値を設定し、ウィキごとに設定を上書きできるようにします。
今のところ、Extension:CentralAuth がサイトごとの情報 (例: 各ウィキの適切な利用者ページへのリンク) を得るのに必要です。
設定
ウィキはデータベース名に接尾辞をつけてグループ分けされています。大規模インストールでは例えば 'enwiki'、'enwiktionary'、'enwikibooks'のようになり、それぞれが異なる接尾辞グループになります。
$wgConf->siteFromDB() を使う場合、接尾辞は $wgConf の suffixes メンバー変数で宣言する必要があります。
$wgConf->settings は設定値群を格納している配列です。
書式は $wgConf->settings['wgSettingName']['wiki'] です。
設定は以下の対象に対する指定となります (範囲の狭い設定から範囲の広い設定への順、これは上記 $wgConf->settings のうち'wiki'の部分になります):
- 特定のデータベース名
- ウィキタグ(1.12.0から)
- (
$wgConf->siteFromDB()によって決まる) 接尾辞グループ内すべてに影響する接尾辞 ('wiki'や'wiktionary'など)
'default'to affect all wikis
文字列設定のため、設定を抽出するときに置き換えられるパラメータを定義できます。
すべてのウィキで書式を揃えておくと使いやすいでしょう。
$名前 の書式で指定します。
シングルクォート (') を使うときや $ をエスケープするとき (\$) は注意してください。さもないと (設定するときには値が決まらない) PHP 変数に置換されてしまいます。
コールバック関数
The $wgConf->siteParamsCallback callback can be set in LocalSettings.php to compute additional "tags" to share settings across a group of wikis in $wgConf->settings array.
These automatically work when retreiving settings via SiteConfiguration::get() and related functions.
コールバック関数は、第1引数として SiteConfiguration オブジェクトを、第2引数としてウィキ ID を受け取り、次の任意キーのうち1つ以上を含む配列を返す必要があります:
suffix: サイトの接尾辞($wgConf->siteFromDB()を上書き)lang: サイトの言語($wgConf->siteFromDB()を上書き)tags: ウィキ タグの配列(既定の "suffix" タグに追加)params: パラメータ置換の配列(既定の "lang" および "site" パラメータに追加)
これらは SiteConfiguration::get() および類似の関数に渡されるパラメーターと統合されます。
設定の統合
配列はこれで統合できます。これは $wgGroupPermissions の設定に役立つでしょう。これを使うには統合しようとする設定のキーの前に"+"付け加えてください。
- DefaultSettings.php にある設定にカスタマイズした設定を統合するには、(
'+wgGroupPermissions'のように) 設定名の前に+を付け加えてください - より限定した階層の設定を統合するには、その対象となる階層のキー名の前に
+を付け加えてください。
二つの選択肢は同時に使用できます。
統合は以下の順に行われます:
- データベース名
- タグ(抽出法による順序にて。これはこの点において非常によくランダム化されているでしょう)
- ウィキ接尾辞
- 既定値
"+"が前についていないキーがあったとき、統合は終了します。
$wgGroupPermissions に関する設定例:
$wgConf->settings = [
# ...
# '+' triggers a merge with this and the value of $wgGroupPermissions defined in DefaultSettings.php
'+wgGroupPermissions' => [
# Allow bureaucrats to change status on remote wikis and allow anonymous users to create pages
# (this part will not be merged with 'default' since there are no "+" in front of 'centralwiki')
'centralwiki' => [
'bureaucrat' => [
'userrights-interwiki' => true,
],
],
# A wiki with rollback right given to logged-in users the 'default' part will be merged with this value
# (i.e., anonymous users won't be able to create pages)
'+somewiki' => [
'user' => [
'rollback' => true,
],
],
# Disallow anonymous users to create pages.
# Note: the 'default' key should never have a "+" in front of it
'default' => [
'*' => [
'createpage' => false,
'createtalk' => false,
],
],
],
# ...
];
基本的な書式は以下の通りです:
$wgConf->settings = [
'wgConfigurationSetting' => [
'default' => 'defaultvalue',
'wikidatabasename1' => 'value that overrides default for this wiki',
],
# To merge the settings you set here with those in DefaultSettings.php:
'+wgConfigurationSetting' => [
# Note: This and DefaultSettings.php are NOT the same!
# The default specified here overrides that in DefaultSettings.php and becomes the new default for all your wikis unless you choose to override it for a particular wiki, like for wikidatabasename1 here.
'default' => 'defaultvalue',
'wikidatabasename1' => 'value that overrides default for this wiki',
],
];
例
この例では3つのウィキ - dewiki, enwiki and frwiki - を使っています。これらはhttp://localhost/$wgDBname/にあります(つまり、http://localhost/dewiki/, http://localhost/enwiki/ and http://localhost/frwiki/)。
$wgDBname は既に定義されているものと仮定します。
$wgConf->settings は InitialiseSettings.php で宣言されていますが、これは必ずしも必要ではなく LocalSettings.php で宣言することもできます。InitialiseSettings.php
<?php
$wgConf->settings = [
'wgServer' => [
# If you want to allow the usage of https, use '//localhost' and set 'http://localhost' at 'wgCanonicalServer'
'default' => 'http://localhost',
],
'wgCanonicalServer' => [
'default' => 'http://localhost',
],
'wgScriptPath' => [
'default' => '/$wiki',
],
'wgArticlePath' => [
'default' => '/$wiki/index.php/$1',
],
'wgSitename' => [
'default' => 'Wikipedia',
'frwiki' => 'Wikipédia', # with accent in French
],
'wgLanguageCode' => [
'default' => '$lang',
],
'wgLocalInterwiki' => [
'default' => '$lang',
],
];
LocalSettings.php
$wgLocalDatabases = [
'dewiki',
'enwiki',
'frwiki',
];
$wgConf->wikis = $wgLocalDatabases;
$wgConf->suffixes = [ 'wiki' ];
$wgConf->localVHosts = [ 'localhost' ];
require_once "$IP/InitialiseSettings.php";
function efGetSiteParams( $conf, $wiki ) {
$site = null;
$lang = null;
foreach( $conf->suffixes as $suffix ) {
if ( substr( $wiki, -strlen( $suffix ) ) === $suffix ) {
$site = $suffix;
$lang = substr( $wiki, 0, -strlen( $suffix ) );
break;
}
}
return [
'suffix' => $site,
'lang' => $lang,
'params' => [
'lang' => $lang,
'site' => $site,
'wiki' => $wiki,
],
'tags' => [],
];
}
$wgConf->suffixes = $wgLocalDatabases;
$wgConf->siteParamsCallback = 'efGetSiteParams';
$wgConf->extractAllGlobals( $wgDBname );
ウィキメディアでの設定
ウィキメディアではどのように $wgConf を設定しウィキを設定しているのかについては以下を参照してください:
- CommonSettings.php (ウィキメディアで使用している
LocalSettings.php) - InitialiseSettings.php (
$wgConf->settings用)
関連項目
- SiteConfiguration.php - $wgConf がどのように機能するのかの案内があり、このページを見るよりも簡単に理解することができるでしょう。