Manual:$wgExtensionFunctions
拡張機能: $wgExtensionFunctions | |
---|---|
MediaWikiが完全に初期化された時点で呼び出される、コールバック関数の一覧 |
|
導入されたバージョン: | 1.3.0 (r3583) |
除去されたバージョン: | 使用中 |
許容される値: | 未指定 |
既定値: | [] |
その他の設定: アルファベット順 | 機能順 |
詳細
一般論として、この機能の使用はハック (巧妙な改造) であり、MediaWikiコアか拡張機能か、どこかで何かがうまく処理できていないことを示唆しています。そのような事態は避けるべきです。
この変数は、MediaWikiの初期化がほぼ完了した時点で呼び出される関数を格納する配列です。
ただし、この時点でまだ完全に設定されていないはRequestContext (または $wgUser
や $wgTitle
などの同等のグローバル関数) を使用しようとすると、思いがけない不調を引き起こす可能性があります。
RequestContextを使用する必要がある場合には、代わりにBeforeInitialize フックやApiBeforeMain フックの使用を検討してください。
あるいはまた、この時点ですでに特定の設定変数が処理済みの可能性があり、それらを変更するリスクにご留意ください。 While there is currently no dedicated place for changing configuration, the MediaWikiServices hook is a better option than extension functions.
この変数はグローバル関数を使ったり、オートロードされたクラスをインスタンス化するなど、高度な処理を行う拡張機能設定コードの、初期化の最終段階で使うべきです。 通常、各拡張機能ごとにセットアップ機能が1対1で関連付けられています。 関連する配列要素は通常、call_user_func() PHP関数と互換性のある形式の文(ステートメント)を使用し、拡張ファイル内で定義されています。
$wgExtensionFunctions[] = "functionName";
$wgExtensionFunctions[] = array( $classInstance, 'functionName' );
$wgExtensionFunctions[] = array( 'ClassName', 'staticFunctionName' );
$wgExtensionFunctions[] = 'ClassName::staticFunctionName';
セットアップ関数はそれぞれ、/includes/Setup.php から呼び出されます。
たとえば、ご利用の拡張機能が初期化においてデータベースへのアクセスが必要な場合の処理法:
function initMyExtension() {
$dbr = wfGetDB( DB_REPLICA );
$myExtension = new MyExtension();
$myExtension->loadSettingsFromDatabase( $dbr );
}