inital commit
This commit is contained in:
111
webroot/forum/inc/cachehandlers/xcache.php
Normal file
111
webroot/forum/inc/cachehandlers/xcache.php
Normal file
@@ -0,0 +1,111 @@
|
||||
<?php
|
||||
/**
|
||||
* MyBB 1.8
|
||||
* Copyright 2014 MyBB Group, All Rights Reserved
|
||||
*
|
||||
* Website: http://www.mybb.com
|
||||
* License: http://www.mybb.com/about/license
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* Xcache Cache Handler
|
||||
*/
|
||||
class xcacheCacheHandler implements CacheHandlerInterface
|
||||
{
|
||||
/**
|
||||
* Unique identifier representing this copy of MyBB
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $unique_id;
|
||||
|
||||
function __construct()
|
||||
{
|
||||
global $mybb;
|
||||
|
||||
if(!function_exists("xcache_get"))
|
||||
{
|
||||
// Check if our DB engine is loaded
|
||||
if(!extension_loaded("XCache"))
|
||||
{
|
||||
// Throw our super awesome cache loading error
|
||||
$mybb->trigger_generic_error("xcache_load_error");
|
||||
die;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Connect and initialize this handler.
|
||||
*
|
||||
* @return boolean True if successful, false on failure
|
||||
*/
|
||||
function connect()
|
||||
{
|
||||
// Set a unique identifier for all queries in case other forums on this server also use this cache handler
|
||||
$this->unique_id = md5(MYBB_ROOT);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve an item from the cache.
|
||||
*
|
||||
* @param string $name The name of the cache
|
||||
* @return mixed Cache data if successful, false if failure
|
||||
*/
|
||||
function fetch($name)
|
||||
{
|
||||
if(!xcache_isset($this->unique_id."_".$name))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return xcache_get($this->unique_id."_".$name);
|
||||
}
|
||||
|
||||
/**
|
||||
* Write an item to the cache.
|
||||
*
|
||||
* @param string $name The name of the cache
|
||||
* @param mixed $contents The data to write to the cache item
|
||||
* @return boolean True on success, false on failure
|
||||
*/
|
||||
function put($name, $contents)
|
||||
{
|
||||
return xcache_set($this->unique_id."_".$name, $contents);
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete a cache
|
||||
*
|
||||
* @param string $name The name of the cache
|
||||
* @return boolean True on success, false on failure
|
||||
*/
|
||||
function delete($name)
|
||||
{
|
||||
return xcache_set($this->unique_id."_".$name, "", 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Disconnect from the cache
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
function disconnect()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function size_of($name='')
|
||||
{
|
||||
global $lang;
|
||||
|
||||
return $lang->na;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user