Aaron van Geffen
ab0e4efbcb
This is to be the new HashRU website based on the Aaronweb.net/Kabuki CMS.
62 lines
1.3 KiB
PHP
62 lines
1.3 KiB
PHP
<?php
|
|
/*****************************************************************************
|
|
* Cache.php
|
|
* Contains key class Cache.
|
|
*
|
|
* Kabuki CMS (C) 2013-2015, Aaron van Geffen
|
|
*****************************************************************************/
|
|
|
|
class Cache
|
|
{
|
|
public static $hits = 0;
|
|
public static $misses = 0;
|
|
public static $puts = 0;
|
|
public static $removals = 0;
|
|
|
|
public static function put($key, $value, $ttl = 3600)
|
|
{
|
|
// If the cache is unavailable, don't bother.
|
|
if (!CACHE_ENABLED || !function_exists('apcu_store'))
|
|
return false;
|
|
|
|
// Keep track of the amount of cache puts.
|
|
self::$puts++;
|
|
|
|
// Store the data in serialized form.
|
|
return apcu_store(CACHE_KEY_PREFIX . $key, serialize($value), $ttl);
|
|
}
|
|
|
|
// Get some data from the cache.
|
|
public static function get($key)
|
|
{
|
|
// If the cache is unavailable, don't bother.
|
|
if (!CACHE_ENABLED || !function_exists('apcu_fetch'))
|
|
return false;
|
|
|
|
// Try to fetch it!
|
|
$value = apcu_fetch(CACHE_KEY_PREFIX . $key);
|
|
|
|
// Were we successful?
|
|
if (!empty($value))
|
|
{
|
|
self::$hits++;
|
|
return unserialize($value);
|
|
}
|
|
// Otherwise, it's a miss.
|
|
else
|
|
{
|
|
self::$misses++;
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public static function remove($key)
|
|
{
|
|
if (!CACHE_ENABLED || !function_exists('apcu_delete'))
|
|
return false;
|
|
|
|
self::$removals++;
|
|
return apcu_delete(CACHE_KEY_PREFIX . $key);
|
|
}
|
|
}
|