Příručka:$wgExtensionFunctions

This page is a translated version of the page Manual:$wgExtensionFunctions and the translation is 100% complete.
Rozšíření: $wgExtensionFunctions
Seznam funkcí zpětného volání, které se nazývají jednou MediaWiki, je plně inicializován.
Zavedeno od verze:1.3.0 (r3583)
Odstraněno od verze:stále se používá
Povolené hodnoty:Blíže neurčeno
Výchozí hodnota:[]

Podrobnosti

Obecně platí, že použití této funkce je hack, který naznačuje, že se něco pokazí, ať už v MediaWiki Core nebo v prodloužení. Je třeba se vyhnout.

Tato proměnná je pole, které ukládá funkce, které se mají volat po dokončení většiny inicializace MediaWiki. Všimněte si však, že v tomto okamžiku není požadavek Context ještě plně nastaven, takže pokus o jeho použití (nebo ekvivalentní globály, jako je $wgUser nebo $wgTitle ), může selhat zvláštním způsobem. Pokud potřebujete použít RequestContext, zvažte místo toho háček BeforeInitialize a ApiBeforeMain

Všimněte si také, že určité konfigurační proměnné mohou být již v tomto bodě zpracovány a jejich změna může být nebezpečná. Přestože v současné době neexistuje žádné specializované místo pro změnu konfigurace, háček MediaWikiServices je lepší volbou než funkce rozšíření.

Tato proměnná by měla být použita pro konečný krok inicializace prodlužovacího kódu, který musí provádět pokročilé věci, jako je použití globálních funkcí a instanci autoloaded tříd. Obvykle má každé rozšíření s sebou jednu funkci nastavení. Dotčený prvek pole je obvykle definován v samotném rozšíření, s příkazem formuláře kompatibilního s call_user_func() php funkce:

$wgExtensionFunctions[] = "functionName";
$wgExtensionFunctions[] = array( $classInstance, 'functionName' );
$wgExtensionFunctions[] = array( 'ClassName', 'staticFunctionName' );
$wgExtensionFunctions[] = 'ClassName::staticFunctionName';

Každá funkce nastavení se poté vyvolá z /includes/Setup.php .

Pokud například vaše přípona potřebuje během jeho inicializace přistupovat k databázi:

function initMyExtension() {
      $dbr = wfGetDB( DB_REPLICA );
      $myExtension = new MyExtension();
      $myExtension->loadSettingsFromDatabase( $dbr );
}

Související odkazy