Added use of a FakeMemCachedClient in case memcached isn't working for some reason...
authorMr. E23 <e23@users.mediawiki.org>
Sun, 25 Jan 2004 00:53:07 +0000 (00:53 +0000)
committerMr. E23 <e23@users.mediawiki.org>
Sun, 25 Jan 2004 00:53:07 +0000 (00:53 +0000)
includes/Setup.php

index 26f4dc3..93bd46c 100644 (file)
@@ -52,8 +52,31 @@ class MemCachedClientforWiki extends memcached {
        }
 }
 
-$wgMemc = new MemCachedClientforWiki( array('persistant' => true) );
+# FakeMemCachedClient imitates the API of memcached-client v. 0.1.2.
+# It acts as a memcached server with no RAM, that is, all objects are
+# cleared the moment they are set. All set operations succeed and all
+# get operations return null.
+
+class FakeMemCachedClient {
+       function add ($key, $val, $exp = 0) { return true; }
+       function decr ($key, $amt=1) { return null; }
+       function delete ($key, $time = 0) { return false; }
+       function disconnect_all () { }
+       function enable_compress ($enable) { }
+       function forget_dead_hosts () { }
+       function get ($key) { return null; }
+       function get_multi ($keys) { return array_pad(array(), count($keys), null); }
+       function incr ($key, $amt=1) { return null; }
+       function replace ($key, $value, $exp=0) { return false; }
+       function run_command ($sock, $cmd) { return null; }
+       function set ($key, $value, $exp=0){ return true; }
+       function set_compress_threshold ($thresh){ }
+       function set_debug ($dbg) { }
+       function set_servers ($list) { }
+}
+
 if( $wgUseMemCached ) {
+       $wgMemc = new MemCachedClientforWiki( array('persistant' => true) );
        $wgMemc->set_servers( $wgMemCachedServers );
        $wgMemc->set_debug( $wgMemCachedDebug );
 
@@ -62,7 +85,10 @@ if( $wgUseMemCached ) {
        if ( !$wgMemc->set( "test", "", 0 ) ) {
                wfDebug( "Memcached failed setup test - connection error?\n" );
                $wgUseMemCached = false;
+               $wgMemc = new FakeMemCachedClient();
        }
+} else {
+       $wgMemc = new FakeMemCachedClient();
 }
 
 wfProfileOut( "$fname-memcached" );