mirror of
https://github.com/YunoHost-Apps/mediawiki_ynh.git
synced 2024-09-03 19:46:05 +02:00
67 lines
2.1 KiB
Text
67 lines
2.1 KiB
Text
globals.txt
|
|
|
|
Globals are evil. The original MediaWiki code relied on globals for processing
|
|
context far too often. MediaWiki development since then has been a story of
|
|
slowly moving context out of global variables and into objects. Storing
|
|
processing context in object member variables allows those objects to be reused
|
|
in a much more flexible way. Consider the elegance of:
|
|
|
|
# Generate the article HTML as if viewed by a web request
|
|
$article = new Article( Title::newFromText( $t ) );
|
|
$article->view();
|
|
|
|
versus
|
|
|
|
# Save current globals
|
|
$oldTitle = $wgTitle;
|
|
$oldArticle = $wgArticle;
|
|
|
|
# Generate the HTML
|
|
$wgTitle = Title::newFromText( $t );
|
|
$wgArticle = new Article;
|
|
$wgArticle->view();
|
|
|
|
# Restore globals
|
|
$wgTitle = $oldTitle
|
|
$wgArticle = $oldArticle
|
|
|
|
Some of the current MediaWiki developers have an idle fantasy that some day,
|
|
globals will be eliminated from MediaWiki entirely, replaced by an application
|
|
object which would be passed to constructors. Whether that would be an
|
|
efficient, convenient solution remains to be seen, but certainly PHP 5 makes
|
|
such object-oriented programming models easier than they were in previous
|
|
versions.
|
|
|
|
For the time being though, MediaWiki programmers will have to work in an
|
|
environment with some global context. At the time of writing, 418 globals were
|
|
initialised on startup by MediaWiki. 304 of these were configuration settings,
|
|
which are documented in DefaultSettings.php. There is no comprehensive
|
|
documentation for the remaining 114 globals, however some of the most important
|
|
ones are listed below. They are typically initialised either in index.php or in
|
|
Setup.php.
|
|
|
|
For a description of the classes, see design.txt.
|
|
|
|
$wgTitle
|
|
Title object created from the request URL.
|
|
|
|
$wgOut
|
|
OutputPage object for HTTP response.
|
|
|
|
$wgUser
|
|
User object for the user associated with the current request.
|
|
|
|
$wgLang
|
|
Language object selected by user preferences.
|
|
|
|
$wgContLang
|
|
Language object associated with the wiki being viewed.
|
|
|
|
$wgParser
|
|
Parser object. Parser extensions register their hooks here.
|
|
|
|
$wgRequest
|
|
WebRequest object, to get request data
|
|
|
|
$wgMemc, $messageMemc, $parserMemc
|
|
Object caches
|