Manuel:$wgExtensionFunctions
Extensions: $wgExtensionFunctions | |
---|---|
Une liste de fonctions de rappel (callback) appelées une fois que MediaWiki est complètement initialisé. |
|
Introduit dans la version : | 1.3.0 (r3583) |
Retiré dans la version : | Encore utilisé |
Valeurs autorisées : | Non renseigné |
Valeur par défaut : | [] |
Autres paramètres : Alphabétique | Par Fonction |
Détails
Cette variable est un tableau qui contient les fonctions à appeler lorsque l'initialisation de MediaWiki est quasiment terminée.
Notez néanmoins qu'à ce point, le RequestContext n'est pas encore complètement initialisé, donc son utilisation (ou l'utilisation des variables globales équivalentes telles que $wgUser
ou $wgTitle
) est succeptible d'échouer de façons très diverses.
Si vous avez besoin d'utiliser le RequestContext, prenez en compte les accroches BeforeInitialize et ApiBeforeMain à la place.
Notez aussi que certaines variables de configuration peuvent déjà avoir été prises en compte à ce point et les modifier pourrait provoquer des instabilités. Parce qu'il n'existe pas actuellement d'endroit dédié pour modifier les paramètres, l'accroche MediaWikiServices est une meilleure option que les fonctions d'extensions.
Cette variable doit être utilisée dans la dernière étape d'initialisation du code de démarrage de l'extension où on fait les tâches avancées, comme utiliser les fonctions globales et instancier les classes auto-chargées. Typiquement chaque extension possède une fonction d'initialisation qui lui est associée. L'élément tableau concerné est généralement défini dans le fichier de l'extension elle-même, par une déclaration de forme compatible avec les fonctions PHP call_user_func() :
$wgExtensionFunctions[] = "functionName";
$wgExtensionFunctions[] = array( $classInstance, 'functionName' );
$wgExtensionFunctions[] = array( 'ClassName', 'staticFunctionName' );
$wgExtensionFunctions[] = 'ClassName::staticFunctionName';
Chaque fonction d'initialisation est ensuite appelée de /includes/Setup.php .
Par exemple, si votre extension a besoin d'accéder à la base de données pendant son initialisation :
function initMyExtension() {
$dbr = wfGetDB( DB_REPLICA );
$myExtension = new MyExtension();
$myExtension->loadSettingsFromDatabase( $dbr );
}