From 183851b06bd6c52f3cae5375f433da720d410447 Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Wed, 11 Oct 2006 18:12:39 +0000 Subject: MediaWiki 1.7.1 wiederhergestellt --- docs/globals.txt | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 docs/globals.txt (limited to 'docs/globals.txt') diff --git a/docs/globals.txt b/docs/globals.txt new file mode 100644 index 00000000..ecc5ab33 --- /dev/null +++ b/docs/globals.txt @@ -0,0 +1,74 @@ +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. + + +$wgOut + OutputPage object for HTTP response. + +$wgUser + User object for the user associated with the current + request. + +$wgTitle + Title object created from the request URL. + +$wgLang + Language object selected by user preferences + +$wgContLang + Language object associated with the wiki being + viewed. + +$wgArticle + Article object corresponding to $wgTitle. + +$wgParser + Parser object. Parser extensions register their + hooks here. + +$wgLoadBalancer + A LoadBalancer object, manages database connections. -- cgit v1.2.2