From 49ef4c23a2c52d950c3be2e1a6713fd4af6cdee3 Mon Sep 17 00:00:00 2001 From: Tim Starling Date: Tue, 11 Nov 2008 23:26:07 +0000 Subject: [PATCH] Language object cache, for faster wfMsg() performance with unusual languages, and hopefully less memory. Committing for test on server. --- languages/Language.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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; } -- 2.20.1