mirror of
https://github.com/slawkens/myaac.git
synced 2025-10-14 01:34:55 +02:00
* php 7.x APCu cache support
This commit is contained in:
@@ -23,6 +23,11 @@ class Cache
|
||||
self::$instance = new Cache_APC($prefix);
|
||||
break;
|
||||
|
||||
case 'apcu':
|
||||
require('cache_apcu.php');
|
||||
self::$instance = new Cache_APCu($prefix);
|
||||
break;
|
||||
|
||||
case 'eaccelerator':
|
||||
require('cache_eaccelerator.php');
|
||||
self::$instance = new Cache_eAccelerator($prefix);
|
||||
@@ -55,6 +60,8 @@ class Cache
|
||||
{
|
||||
if(function_exists('apc_fetch'))
|
||||
return 'apc';
|
||||
else if(function_exists('apcu_fetch'))
|
||||
return 'apcu';
|
||||
else if(function_exists('eaccelerator_get'))
|
||||
return 'eaccelerator';
|
||||
else if(function_exists('xcache_get') && ini_get('xcache.var_size'))
|
||||
|
52
system/libs/cache_apcu.php
Normal file
52
system/libs/cache_apcu.php
Normal file
@@ -0,0 +1,52 @@
|
||||
<?php
|
||||
/**
|
||||
* Cache APC class
|
||||
*
|
||||
* @package MyAAC
|
||||
* @author Slawkens <slawkens@gmail.com>
|
||||
* @author Mark Samman (Talaturen) <marksamman@gmail.com>
|
||||
* @copyright 2017 MyAAC
|
||||
* @link http://my-aac.org
|
||||
*/
|
||||
defined('MYAAC') or die('Direct access not allowed!');
|
||||
|
||||
class Cache_APCu
|
||||
{
|
||||
private $prefix = '';
|
||||
private $enabled;
|
||||
|
||||
public function __construct($prefix = '')
|
||||
{
|
||||
$this->prefix = $prefix;
|
||||
$this->enabled = function_exists('apcu_fetch');
|
||||
}
|
||||
|
||||
public function set($key, $var, $ttl = 0)
|
||||
{
|
||||
$key = $this->prefix . $key;
|
||||
apcu_delete($key);
|
||||
apcu_store($key, $var, $ttl);
|
||||
}
|
||||
|
||||
public function get($key)
|
||||
{
|
||||
$tmp = '';
|
||||
if($this->fetch($key, $tmp))
|
||||
return $tmp;
|
||||
|
||||
return '';
|
||||
}
|
||||
|
||||
public function fetch($key, &$var) {
|
||||
return ($var = apcu_fetch($this->prefix . $key)) !== false;
|
||||
}
|
||||
|
||||
public function delete($key) {
|
||||
apcu_delete($key);
|
||||
}
|
||||
|
||||
public function enabled() {
|
||||
return $this->enabled;
|
||||
}
|
||||
}
|
||||
?>
|
Reference in New Issue
Block a user