$value) { wfDebug( "$name: $value\n" ); } wfDebug( "\n" ); } else { wfDebug( $_SERVER['REQUEST_METHOD'] . ' ' . $_SERVER['REQUEST_URI'] . "\n" ); } # Set up Memcached # class MemCachedClientforWiki extends memcached { function _debugprint( $text ) { wfDebug( "memcached: $text\n" ); } } # 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 ); # Test it to see if it's working # This is necessary because otherwise wfMsg would be extremely inefficient 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" ); wfProfileIn( "$fname-misc" ); include_once( "Language.php" ); $wgMessageCache = new MessageCache; $wgLangClass = "Language" . ucfirst( $wgLanguageCode ); 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 ); $wgOut = new OutputPage(); wfDebug( "\n\n" ); if ( $wgUseDynamicDates ) { include_once( "DateFormatter.php" ); global $wgDateFormatter; $wgDateFormatter = new DateFormatter; } if( !$wgCommandLineMode && ( isset( $_COOKIE[ini_get("session.name")] ) || isset( $_COOKIE["{$wgDBname}Password"] ) ) ) { User::SetupSession(); } $wgBlockCache = new BlockCache( true ); $wgUser = User::loadFromSession(); $wgDeferredUpdateList = array(); $wgLinkCache = new LinkCache(); $wgMagicWords = array(); $wgMwRedir =& MagicWord::get( MAG_REDIRECT ); $wgParserCache = new ParserCache(); $wgParser = new Parser(); $wgOut->setParserOptions( ParserOptions::newFromUser( $wgUser ) ); wfProfileOut( "$fname-misc" ); wfProfileOut( $fname ); ?>