From f8b70b66039899181a51606d16c1aea8aab29364 Mon Sep 17 00:00:00 2001 From: Domas Mituzas Date: Wed, 7 Jun 2006 11:44:10 +0000 Subject: [PATCH] AutoLoad Title.php, move global cache arrays to static Title:: variables --- RELEASE-NOTES | 1 + includes/CacheManager.php | 5 ----- includes/Setup.php | 1 - includes/Title.php | 40 ++++++++++++++++++++------------------- trackback.php | 1 - 5 files changed, 22 insertions(+), 26 deletions(-) diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 6d529601cc..1a130c3db2 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -457,6 +457,7 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN * Regression fix: suppress warning about session failure when clicking to edit with 'preview on first edit' enabled. * (bug 6230) Regression fix: in [URL link text] +* Added AutoLoader.php, which loads classes without need of require_once() == Compatibility == diff --git a/includes/CacheManager.php b/includes/CacheManager.php index 0d116f72ad..b9e307f44f 100644 --- a/includes/CacheManager.php +++ b/includes/CacheManager.php @@ -5,11 +5,6 @@ * @subpackage Cache */ -/** - * We need the title class - */ -require_once( 'Title.php' ); - /** * Handles talking to the file cache, putting stuff in and taking it back out. * Mostly called from Article.php, also from DatabaseFunctions.php for the diff --git a/includes/Setup.php b/includes/Setup.php index acdca9c5a0..9b90b899fe 100644 --- a/includes/Setup.php +++ b/includes/Setup.php @@ -58,7 +58,6 @@ require_once( 'Namespace.php' ); require_once( 'User.php' ); require_once( 'Skin.php' ); require_once( 'OutputPage.php' ); -require_once( 'Title.php' ); require_once( 'MagicWord.php' ); require_once( 'Block.php' ); require_once( 'MessageCache.php' ); diff --git a/includes/Title.php b/includes/Title.php index 82b5539536..75acdecb69 100644 --- a/includes/Title.php +++ b/includes/Title.php @@ -8,9 +8,6 @@ /** */ require_once( 'normal/UtfNormal.php' ); -$wgTitleInterwikiCache = array(); -$wgTitleCache = array(); - define ( 'GAID_FOR_UPDATE', 1 ); # Title::newFromTitle maintains a cache to avoid @@ -28,6 +25,13 @@ define( 'MW_TITLECACHE_MAX', 1000 ); * @package MediaWiki */ class Title { + /** + * Static cache variables + */ + static private $titleCache=array(); + static private $interwikiCache=array(); + + /** * All member variables should be considered private * Please use the accessor functions @@ -105,7 +109,6 @@ class Title { * @access public */ function newFromText( $text, $defaultNamespace = NS_MAIN ) { - global $wgTitleCache; $fname = 'Title::newFromText'; if( is_object( $text ) ) { @@ -120,8 +123,8 @@ class Title { * * In theory these are value objects and won't get changed... */ - if( $defaultNamespace == NS_MAIN && isset( $wgTitleCache[$text] ) ) { - return $wgTitleCache[$text]; + if( $defaultNamespace == NS_MAIN && isset( Title::$titleCache[$text] ) ) { + return Title::$titleCache[$text]; } /** @@ -138,11 +141,11 @@ class Title { if( $defaultNamespace == NS_MAIN ) { if( $cachedcount >= MW_TITLECACHE_MAX ) { # Avoid memory leaks on mass operations... - $wgTitleCache = array(); + Title::$titleCache = array(); $cachedcount=0; } $cachedcount++; - $wgTitleCache[$text] =& $t; + Title::$titleCache[$text] =& $t; } return $t; } else { @@ -374,15 +377,15 @@ class Title { * @access public */ function getInterwikiLink( $key ) { - global $wgMemc, $wgDBname, $wgInterwikiExpiry, $wgTitleInterwikiCache; + global $wgMemc, $wgDBname, $wgInterwikiExpiry; global $wgInterwikiCache; $fname = 'Title::getInterwikiLink'; $key = strtolower( $key ); $k = $wgDBname.':interwiki:'.$key; - if( array_key_exists( $k, $wgTitleInterwikiCache ) ) { - return $wgTitleInterwikiCache[$k]->iw_url; + if( array_key_exists( $k, Title::$interwikiCache ) ) { + return Title::$interwikiCache[$k]->iw_url; } if ($wgInterwikiCache) { @@ -392,7 +395,7 @@ class Title { $s = $wgMemc->get( $k ); # Ignore old keys with no iw_local if( $s && isset( $s->iw_local ) && isset($s->iw_trans)) { - $wgTitleInterwikiCache[$k] = $s; + Title::$interwikiCache[$k] = $s; return $s->iw_url; } @@ -413,7 +416,7 @@ class Title { $s->iw_trans = 0; } $wgMemc->set( $k, $s, $wgInterwikiExpiry ); - $wgTitleInterwikiCache[$k] = $s; + Title::$interwikiCache[$k] = $s; return $s->iw_url; } @@ -428,7 +431,6 @@ class Title { */ function getInterwikiCached( $key ) { global $wgDBname, $wgInterwikiCache, $wgInterwikiScopes, $wgInterwikiFallbackSite; - global $wgTitleInterwikiCache; static $db, $site; if (!$db) @@ -459,7 +461,7 @@ class Title { $s->iw_url=$url; $s->iw_local=(int)$local; } - $wgTitleInterwikiCache[$wgDBname.':interwiki:'.$key] = $s; + Title::$interwikiCache[$wgDBname.':interwiki:'.$key] = $s; return $s->iw_url; } /** @@ -471,13 +473,13 @@ class Title { * @access public */ function isLocal() { - global $wgTitleInterwikiCache, $wgDBname; + global $wgDBname; if ( $this->mInterwiki != '' ) { # Make sure key is loaded into cache $this->getInterwikiLink( $this->mInterwiki ); $k = $wgDBname.':interwiki:' . $this->mInterwiki; - return (bool)($wgTitleInterwikiCache[$k]->iw_local); + return (bool)(Title::$interwikiCache[$k]->iw_local); } else { return true; } @@ -491,14 +493,14 @@ class Title { * @access public */ function isTrans() { - global $wgTitleInterwikiCache, $wgDBname; + global $wgDBname; if ($this->mInterwiki == '') return false; # Make sure key is loaded into cache $this->getInterwikiLink( $this->mInterwiki ); $k = $wgDBname.':interwiki:' . $this->mInterwiki; - return (bool)($wgTitleInterwikiCache[$k]->iw_trans); + return (bool)(Title::$interwikiCache[$k]->iw_trans); } /** diff --git a/trackback.php b/trackback.php index f00f040304..274a1c82d7 100644 --- a/trackback.php +++ b/trackback.php @@ -20,7 +20,6 @@ if (!file_exists('LocalSettings.php')) require_once('./LocalSettings.php'); require_once('includes/Setup.php'); -require_once('Title.php'); require_once('DatabaseFunctions.php'); /** -- 2.20.1