<?php
/**
- * @package MediaWiki
- * @subpackage Cache
+ * @addtogroup Cache
*/
-/** */
-if (!defined('MEDIAWIKI')) die( "Not a valid entry point\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.
- * @package MediaWiki
- * @subpackage Cache
+ * @addtogroup Cache
*/
class FakeMemCachedClient {
function add ($key, $val, $exp = 0) { return true; }
/** @todo document */
function &wfGetCache( $inputType ) {
- global $wgCaches, $wgMemCachedServers, $wgMemCachedDebug;
+ global $wgCaches, $wgMemCachedServers, $wgMemCachedDebug, $wgMemCachedPersistent;
$cache = false;
if ( $inputType == CACHE_ANYTHING ) {
}
if ( $type == CACHE_MEMCACHED ) {
- if ( !array_key_exists( CACHE_MEMCACHED, $wgCaches ) ){
+ if ( !array_key_exists( CACHE_MEMCACHED, $wgCaches ) ){
require_once( 'memcached-client.php' );
-
+
if (!class_exists("MemcachedClientforWiki")) {
class MemCachedClientforWiki extends memcached {
function _debugprint( $text ) {
}
}
- $wgCaches[CACHE_DB] = new MemCachedClientforWiki(
- array('persistant' => false, 'compress_threshold' => 1500 ) );
+ $wgCaches[CACHE_DB] = new MemCachedClientforWiki(
+ array('persistant' => $wgMemCachedPersistent, 'compress_threshold' => 1500 ) );
$cache =& $wgCaches[CACHE_DB];
$cache->set_servers( $wgMemCachedServers );
$cache->set_debug( $wgMemCachedDebug );
} elseif ( $type == CACHE_ACCEL ) {
if ( !array_key_exists( CACHE_ACCEL, $wgCaches ) ) {
if ( function_exists( 'eaccelerator_get' ) ) {
- require_once( 'BagOStuff.php' );
$wgCaches[CACHE_ACCEL] = new eAccelBagOStuff;
+ } elseif ( function_exists( 'apc_fetch') ) {
+ $wgCaches[CACHE_ACCEL] = new APCBagOStuff;
+ } elseif( function_exists( 'xcache_get' ) ) {
+ $wgCaches[CACHE_ACCEL] = new XCacheBagOStuff();
} elseif ( function_exists( 'mmcache_get' ) ) {
- require_once( 'BagOStuff.php' );
$wgCaches[CACHE_ACCEL] = new TurckBagOStuff;
} else {
$wgCaches[CACHE_ACCEL] = false;
if ( $wgCaches[CACHE_ACCEL] !== false ) {
$cache =& $wgCaches[CACHE_ACCEL];
}
+ } elseif ( $type == CACHE_DBA ) {
+ if ( !array_key_exists( CACHE_DBA, $wgCaches ) ) {
+ $wgCaches[CACHE_DBA] = new DBABagOStuff;
+ }
+ $cache =& $wgCaches[CACHE_DBA];
}
-
+
if ( $type == CACHE_DB || ( $inputType == CACHE_ANYTHING && $cache === false ) ) {
if ( !array_key_exists( CACHE_DB, $wgCaches ) ) {
- require_once( 'BagOStuff.php' );
$wgCaches[CACHE_DB] = new MediaWikiBagOStuff('objectcache');
}
$cache =& $wgCaches[CACHE_DB];
}
-
+
if ( $cache === false ) {
if ( !array_key_exists( CACHE_NONE, $wgCaches ) ) {
$wgCaches[CACHE_NONE] = new FakeMemCachedClient;