From: Tim Starling Date: Tue, 11 Nov 2008 23:26:07 +0000 (+0000) Subject: Language object cache, for faster wfMsg() performance with unusual languages, and... X-Git-Tag: 1.31.0-rc.0~44370 X-Git-Url: https://git.cyclocoop.org/%7B%24admin_url%7Dmembres/modifier.php?a=commitdiff_plain;h=49ef4c23a2c52d950c3be2e1a6713fd4af6cdee3;p=lhc%2Fweb%2Fwiklou.git Language object cache, for faster wfMsg() performance with unusual languages, and hopefully less memory. Committing for test on server. --- diff --git a/languages/Language.php b/languages/Language.php index 78e71a0fd0..4386a42129 100644 --- a/languages/Language.php +++ b/languages/Language.php @@ -74,6 +74,7 @@ class Language { static public $mMergeableAliasListKeys = array( 'specialPageAliases' ); static public $mLocalisationCache = array(); + static public $mLangObjCache = array(); static public $mWeekdayMsgs = array( 'sunday', 'monday', 'tuesday', 'wednesday', 'thursday', @@ -130,12 +131,16 @@ class Language { ); /** - * Create a language object for a given language code + * Get a language object for a given language code */ static function factory( $code ) { global $IP; static $recursionLevel = 0; + if ( isset( self::$mLangObjCache[$code] ) ) { + return self::$mLangObjCache[$code]; + } + if ( $code == 'en' ) { $class = 'Language'; } else { @@ -163,6 +168,7 @@ class Language { $lang = new $class; } + self::$mLangObjCache[$code] = $lang; return $lang; }