Fixed initialisation order to make it slightly more robust
authorTim Starling <tstarling@users.mediawiki.org>
Wed, 7 Jan 2004 13:05:27 +0000 (13:05 +0000)
committerTim Starling <tstarling@users.mediawiki.org>
Wed, 7 Jan 2004 13:05:27 +0000 (13:05 +0000)
includes/MessageCache.php
includes/Setup.php

index 3226653..8224840 100755 (executable)
@@ -11,10 +11,8 @@ class MessageCache
 {
        var $mCache, $mUseCache, $mDisable, $mExpiry;
        var $mMemcKey, $mKeys;
-
-       function MessageCache( $useMemCached, $useDB, $expiry, $memcPrefix ) {
-               $this->initialise( $useMemCached, $useDB, $expiry, $memcPrefix );
-       }
+       
+       var $mInitialised = false;
 
        function initialise( $useMemCached, $useDB, $expiry, $memcPrefix ) {
                $this->mUseCache = $useMemCached;
@@ -22,7 +20,8 @@ class MessageCache
                $this->mExpiry = $expiry;
                $this->mMemcKey = "$memcPrefix:messages";
                $this->mKeys = false; # initialised on demand
-               
+               $this->mInitialised = true;
+
                $this->load();
        }
 
@@ -150,7 +149,12 @@ class MessageCache
        
        function get( $key, $useDB ) {
                global $wgLang, $wgLanguageCode;
-
+               
+               # If uninitialised, someone is trying to call this halfway through Setup.php
+               if ( !$this->mInitialised ) {
+                       return "&lt;$key&gt;";
+               }
+               
                if ( $this->mDisable ) {
                        return $wgLang->getMessage( $key );
                }
index 5f12702..9e01fa4 100644 (file)
@@ -69,7 +69,7 @@ wfProfileIn( "$fname-misc" );
 
 include_once( "Language.php" );
 
-$wgMessageCache = new MessageCache( $wgUseMemCached, $wgUseDatabaseMessages, $wgMsgCacheExpiry, $wgDBname );
+$wgMessageCache = new MessageCache
 
 $wgOut = new OutputPage();
 wfDebug( "\n\n" );
@@ -79,7 +79,12 @@ if( ! class_exists( $wgLangClass ) ) {
        include_once( "LanguageUtf8.php" );
        $wgLangClass = "LanguageUtf8";
 }
+
 $wgLang = new $wgLangClass();
+if ( !is_object($wgLang) ) {
+       print "No language class ($wgLang)\N";
+}
+$wgMessageCache->initialise( $wgUseMemCached, $wgUseDatabaseMessages, $wgMsgCacheExpiry, $wgDBname );
 
 if ( $wgUseDynamicDates ) {
        include_once( "DateFormatter.php" );