Руководство:$wgExtensionFunctions

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page Manual:$wgExtensionFunctions and the translation is 25% complete.
Other languages:
English • ‎español • ‎français • ‎magyar • ‎русский • ‎日本語
Extensions: $wgExtensionFunctions
Список callback-функций, которые вызываются один раз когда Mediawiki полностью инициализирована.
Появилось, начиная с версии:1.3.0 (r3583)
Удалено в версии:все еще используется
Допустимые значения:не определено
Значение по умолчанию:[]

Подробнее

In general, using this functionality is a hack that suggests that something is going wrong somewhere, whether in MediaWiki core or in the extension. It should be avoided.

Эта переменная - массив функций, которые вызываются когда инициализация MediaWiki почти завершена. Note however that at this point the RequestContext is not yet fully set up, so attempting to use it (or equivalent globals such as $wgUser or $wgTitle ) is liable to fail in odd ways. If you need to use the RequestContext, consider the BeforeInitialize and ApiBeforeMain hooks instead.

Note also that certain config variables might have been processed already at this point and changing them might be unsafe. For extensions which use Руководство:Регистрация расширений , the callback is a better option for changing the configuration. For other extensions, SetupAfterCache is probably the best bet.

This variable should be used for final step of initialization of extension setup code that needs to perform advanced things, like using global functions and instantiating autoloaded classes. Typically each extension has one setup function associated with it. The array element concerned is typically defined in the extension file itself, with a statement of the form compatible with call_user_func() PHP function:

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

Each setup function is then called from /includes/Setup.php .

For example, if your extension needs to access database during its initialization:

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

See also