http://www.mediawiki.org/wiki/Special:Code/MediaWiki/88588
Revision: 88588
Author: demon
Date: 2011-05-22 17:59:47 +0000 (Sun, 22 May 2011)
Log Message:
-----------
$wgArticle is deprecated! Possible removal in 1.20 or 1.21!
* Encapsulate index.php in wfIndexMain() (similar to r77873)
* Kill $wgArticle check in Exception, not necessary anymore
* Kill $wgArticle in Setup, also not necessary
* Add angry note about $wgArticle to rebuildFileCache.
* Remove note about $wgArticle in Parser since it's dying anyway
Modified Paths:
--------------
trunk/phase3/docs/globals.txt
trunk/phase3/includes/Exception.php
trunk/phase3/includes/Setup.php
trunk/phase3/includes/Wiki.php
trunk/phase3/includes/parser/Parser.php
trunk/phase3/index.php
trunk/phase3/maintenance/rebuildFileCache.php
Modified: trunk/phase3/docs/globals.txt
===================================================================
--- trunk/phase3/docs/globals.txt 2011-05-22 17:57:29 UTC (rev 88587)
+++ trunk/phase3/docs/globals.txt 2011-05-22 17:59:47 UTC (rev 88588)
@@ -45,9 +45,6 @@
$wgTitle
Title object created from the request URL.
-$wgArticle
- Article object corresponding to $wgTitle.
-
$wgOut
OutputPage object for HTTP response.
Modified: trunk/phase3/includes/Exception.php
===================================================================
--- trunk/phase3/includes/Exception.php 2011-05-22 17:57:29 UTC (rev 88587)
+++ trunk/phase3/includes/Exception.php 2011-05-22 17:59:47 UTC (rev 88588)
@@ -22,7 +22,8 @@
function useOutputPage() {
return $this->useMessageCache() &&
!empty( $GLOBALS['wgFullyInitialised'] ) &&
- ( !empty( $GLOBALS['wgArticle'] ) || ( !empty(
$GLOBALS['wgOut'] ) && !$GLOBALS['wgOut']->isArticleRelated() ) ) &&
+ !empty( $GLOBALS['wgOut'] ) &&
+ !$GLOBALS['wgOut']->isArticleRelated() &&
!empty( $GLOBALS['wgTitle'] );
}
Modified: trunk/phase3/includes/Setup.php
===================================================================
--- trunk/phase3/includes/Setup.php 2011-05-22 17:57:29 UTC (rev 88587)
+++ trunk/phase3/includes/Setup.php 2011-05-22 17:59:47 UTC (rev 88588)
@@ -443,11 +443,10 @@
# Placeholders in case of DB error
$wgTitle = null;
-$wgArticle = null;
$wgDeferredUpdateList = array();
-// We need to check for safe_mode, because mail() willl throws an E_NOTICE
+// We need to check for safe_mode, because mail() will throw an E_NOTICE
// on additional parameters
if( !is_null($wgAdditionalMailParams) && wfIniGetBool('safe_mode') ) {
$wgAdditionalMailParams = null;
Modified: trunk/phase3/includes/Wiki.php
===================================================================
--- trunk/phase3/includes/Wiki.php 2011-05-22 17:57:29 UTC (rev 88587)
+++ trunk/phase3/includes/Wiki.php 2011-05-22 17:59:47 UTC (rev 88588)
@@ -150,7 +150,6 @@
// Invalid titles. Bug 21776: The interwikis must redirect even
if the page name is empty.
if ( $this->context->title instanceof BadTitle ) {
- // Die now before we mess up $wgArticle and the skin
stops working
throw new ErrorPageError( 'badtitle', 'badtitletext' );
// Interwiki redirects
@@ -292,7 +291,7 @@
}
/**
- * Initialize the object to be known as $wgArticle for "standard"
actions
+ * Initialize the main Article object for "standard" actions (view, etc)
* Create an Article object for the page, following redirects if needed.
*
* @return mixed an Article, or a string to redirect to another URL
Modified: trunk/phase3/includes/parser/Parser.php
===================================================================
--- trunk/phase3/includes/parser/Parser.php 2011-05-22 17:57:29 UTC (rev
88587)
+++ trunk/phase3/includes/parser/Parser.php 2011-05-22 17:59:47 UTC (rev
88588)
@@ -34,7 +34,7 @@
* Globals used:
* objects: $wgLang, $wgContLang
*
- * NOT $wgArticle, $wgUser or $wgTitle. Keep them away!
+ * NOT $wgUser or $wgTitle. Keep them away!
*
* settings:
* $wgUseDynamicDates*, $wgInterwikiMagic*,
Modified: trunk/phase3/index.php
===================================================================
--- trunk/phase3/index.php 2011-05-22 17:57:29 UTC (rev 88587)
+++ trunk/phase3/index.php 2011-05-22 17:59:47 UTC (rev 88588)
@@ -63,83 +63,98 @@
# Initialise common code. This gives us access to GlobalFunctions, the
AutoLoader, and
# the globals $wgRequest, $wgOut, $wgUser, $wgLang and $wgContLang, amongst
others; it
-# does *not* load $wgTitle or $wgArticle
+# does *not* load $wgTitle
require ( dirname( __FILE__ ) . '/includes/WebStart.php' );
-wfProfileIn( 'index.php' );
-wfProfileIn( 'index.php-setup' );
+wfIndexMain();
-$maxLag = $wgRequest->getVal( 'maxlag' );
-if ( !is_null( $maxLag ) ) {
- $lb = wfGetLB(); // foo()->bar() is not supported in PHP4
- list( $host, $lag ) = $lb->getMaxLag();
- if ( $lag > $maxLag ) {
- header( 'HTTP/1.1 503 Service Unavailable' );
- header( 'Retry-After: ' . max( intval( $maxLag ), 5 ) );
- header( 'X-Database-Lag: ' . intval( $lag ) );
- header( 'Content-Type: text/plain' );
- if( $wgShowHostnames ) {
- echo "Waiting for $host: $lag seconds lagged\n";
- } else {
- echo "Waiting for a database server: $lag seconds
lagged\n";
+function wfIndexMain() {
+ global $wgRequest, $wgShowHostnames, $mediaWiki, $wgTitle, $wgUseAjax,
$wgUseFileCache;
+
+ wfProfileIn( 'index.php' );
+ wfProfileIn( 'index.php-setup' );
+
+ $maxLag = $wgRequest->getVal( 'maxlag' );
+ if ( !is_null( $maxLag ) ) {
+ $lb = wfGetLB(); // foo()->bar() is not supported in PHP4
+ list( $host, $lag ) = $lb->getMaxLag();
+ if ( $lag > $maxLag ) {
+ header( 'HTTP/1.1 503 Service Unavailable' );
+ header( 'Retry-After: ' . max( intval( $maxLag ), 5 ) );
+ header( 'X-Database-Lag: ' . intval( $lag ) );
+ header( 'Content-Type: text/plain' );
+ if( $wgShowHostnames ) {
+ echo "Waiting for $host: $lag seconds lagged\n";
+ } else {
+ echo "Waiting for a database server: $lag
seconds lagged\n";
+ }
+ exit;
}
- exit;
}
-}
-# Initialize MediaWiki base class
-$context = RequestContext::getMain();
-$mediaWiki = new MediaWiki( $context );
+ # Initialize MediaWiki base class
+ $context = RequestContext::getMain();
+ $mediaWiki = new MediaWiki( $context );
-# Set title from request parameters
-$wgTitle = $mediaWiki->getTitle();
-$action = $wgRequest->getVal( 'action', 'view' );
+ # Set title from request parameters
+ $wgTitle = $mediaWiki->getTitle();
+ $action = $wgRequest->getVal( 'action', 'view' );
-wfProfileOut( 'index.php-setup' );
+ wfProfileOut( 'index.php-setup' );
-# Send Ajax requests to the Ajax dispatcher.
-if ( $wgUseAjax && $action == 'ajax' ) {
- $dispatcher = new AjaxDispatcher();
- $dispatcher->performAction();
- wfProfileOut( 'index.php' );
- $mediaWiki->restInPeace();
- exit;
-}
+ # Send Ajax requests to the Ajax dispatcher.
+ if ( $wgUseAjax && $action == 'ajax' ) {
+ $dispatcher = new AjaxDispatcher();
+ $dispatcher->performAction();
+ wfProfileOut( 'index.php' );
+ $mediaWiki->restInPeace();
+ exit;
+ }
-if ( $wgUseFileCache && $wgTitle !== null ) {
- wfProfileIn( 'index.php-filecache' );
- // Raw pages should handle cache control on their own,
- // even when using file cache. This reduces hits from clients.
- if ( $action != 'raw' && HTMLFileCache::useFileCache() ) {
- /* Try low-level file cache hit */
- $cache = new HTMLFileCache( $wgTitle, $action );
- if ( $cache->isFileCacheGood( /* Assume up to date */ ) ) {
- /* Check incoming headers to see if client has this
cached */
- if ( !$context->output->checkLastModified(
$cache->fileCacheTime() ) ) {
- $cache->loadFromFileCache();
+ if ( $wgUseFileCache && $wgTitle !== null ) {
+ wfProfileIn( 'index.php-filecache' );
+ // Raw pages should handle cache control on their own,
+ // even when using file cache. This reduces hits from clients.
+ if ( $action != 'raw' && HTMLFileCache::useFileCache() ) {
+ /* Try low-level file cache hit */
+ $cache = new HTMLFileCache( $wgTitle, $action );
+ if ( $cache->isFileCacheGood( /* Assume up to date */ )
) {
+ /* Check incoming headers to see if client has
this cached */
+ if ( !$context->output->checkLastModified(
$cache->fileCacheTime() ) ) {
+ $cache->loadFromFileCache();
+ }
+ # Do any stats increment/watchlist stuff
+ $article = MediaWiki::articleFromTitle(
$wgTitle, $context );
+ $article->viewUpdates();
+ # Tell OutputPage that output is taken care of
+ $context->output->disable();
+ wfProfileOut( 'index.php-filecache' );
+ $mediaWiki->finalCleanup();
+ wfProfileOut( 'index.php' );
+ $mediaWiki->restInPeace();
+ exit;
}
- # Do any stats increment/watchlist stuff
- $wgArticle = MediaWiki::articleFromTitle( $wgTitle,
$context );
- $wgArticle->viewUpdates();
- # Tell OutputPage that output is taken care of
- $context->output->disable();
- wfProfileOut( 'index.php-filecache' );
- $mediaWiki->finalCleanup();
- wfProfileOut( 'index.php' );
- $mediaWiki->restInPeace();
- exit;
}
+ wfProfileOut( 'index.php-filecache' );
}
- wfProfileOut( 'index.php-filecache' );
-}
-$mediaWiki->performRequestForTitle( $wgArticle );
-$mediaWiki->finalCleanup();
+ $mediaWiki->performRequestForTitle( $article );
-wfProfileOut( 'index.php' );
+ /**
+ * $wgArticle is deprecated, do not use it. This will possibly be
removed
+ * entirely in 1.20 or 1.21
+ * @deprecated since 1.19
+ */
+ global $wgArticle;
+ $wgArticle = $article;
-$mediaWiki->restInPeace();
+ $mediaWiki->finalCleanup();
+ wfProfileOut( 'index.php' );
+
+ $mediaWiki->restInPeace();
+}
+
/**
* Display something vaguely comprehensible in the event of a totally
unrecoverable error.
* Does not assume access to *anything*; no globals, no autloader, no
database, no localisation.
Modified: trunk/phase3/maintenance/rebuildFileCache.php
===================================================================
--- trunk/phase3/maintenance/rebuildFileCache.php 2011-05-22 17:57:29 UTC
(rev 88587)
+++ trunk/phase3/maintenance/rebuildFileCache.php 2011-05-22 17:59:47 UTC
(rev 88588)
@@ -31,6 +31,9 @@
$this->setBatchSize( 100 );
}
+ /**
+ * @todo MAKE $wgArticle GO AWAY! This is the absolute LAST use in core
+ */
public function execute() {
global $wgUseFileCache, $wgDisableCounters,
$wgContentNamespaces, $wgRequestTime;
global $wgTitle, $wgArticle, $wgOut;
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs