Added use of a FakeMemCachedClient in case memcached isn't working for some reason. Adds some speed as well as avoids a php segfault on certain setups when memcached is enabled but not available.

This commit is contained in:
Mr. E23 2004-01-25 00:53:07 +00:00
parent 7f2a3294e5
commit 112115813a

View 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" );