Support for xcache

This commit is contained in:
Michael Vogel 2014-03-09 09:24:41 +01:00
parent 51bf7f7d17
commit 9afe5c8670
1 changed files with 47 additions and 13 deletions

View File

@ -66,12 +66,22 @@ function get_config($family, $key, $instore = false) {
} }
} }
// If APC is enabled then fetch the data from there // If APC is enabled then fetch the data from there, else try XCache
if (function_exists("apc_fetch") AND function_exists("apc_exists")) if (function_exists("apc_fetch") AND function_exists("apc_exists"))
if (apc_exists($family."|".$key)) { if (apc_exists($family."|".$key)) {
$val = apc_fetch($family."|".$key); $val = apc_fetch($family."|".$key);
$a->config[$family][$key] = $val; $a->config[$family][$key] = $val;
if ($val === '!<unset>!')
return false;
else
return $val;
}
elseif (function_exists("xcache_fetch") AND function_exists("xcache_isset"))
if (xcache_isset($family."|".$key)) {
$val = xcache_fetch($family."|".$key);
$a->config[$family][$key] = $val;
if ($val === '!<unset>!') if ($val === '!<unset>!')
return false; return false;
else else
@ -87,18 +97,22 @@ function get_config($family, $key, $instore = false) {
$val = (preg_match("|^a:[0-9]+:{.*}$|s", $ret[0]['v'])?unserialize( $ret[0]['v']):$ret[0]['v']); $val = (preg_match("|^a:[0-9]+:{.*}$|s", $ret[0]['v'])?unserialize( $ret[0]['v']):$ret[0]['v']);
$a->config[$family][$key] = $val; $a->config[$family][$key] = $val;
// If APC is enabled then store the data there // If APC is enabled then store the data there, else try XCache
if (function_exists("apc_store")) if (function_exists("apc_store"))
apc_store($family."|".$key, $val, 600); apc_store($family."|".$key, $val, 600);
elseif (function_exists("xcache_set"))
xcache_set($family."|".$key, $val, 600);
return $val; return $val;
} }
else { else {
$a->config[$family][$key] = '!<unset>!'; $a->config[$family][$key] = '!<unset>!';
// If APC is enabled then store the data there // If APC is enabled then store the data there, else try XCache
if (function_exists("apc_store")) if (function_exists("apc_store"))
apc_store($family."|".$key, '!<unset>!', 600); apc_store($family."|".$key, '!<unset>!', 600);
elseif (function_exists("xcache_set"))
xcache_set($family."|".$key, '!<unset>!', 600);
} }
return false; return false;
}} }}
@ -134,7 +148,7 @@ function set_config($family,$key,$value) {
return $ret; return $ret;
} }
$ret = q("UPDATE `config` SET `v` = '%s' WHERE `cat` = '%s' AND `k` = '%s' LIMIT 1", $ret = q("UPDATE `config` SET `v` = '%s' WHERE `cat` = '%s' AND `k` = '%s'",
dbesc($dbvalue), dbesc($dbvalue),
dbesc($family), dbesc($family),
dbesc($key) dbesc($key)
@ -142,9 +156,11 @@ function set_config($family,$key,$value) {
$a->config[$family][$key] = $value; $a->config[$family][$key] = $value;
// If APC is enabled then store the data there // If APC is enabled then store the data there, else try XCache
if (function_exists("apc_store")) if (function_exists("apc_store"))
apc_store($family."|".$key, $value, 600); apc_store($family."|".$key, $value, 600);
elseif (function_exists("xcache_set"))
xcache_set($family."|".$key, $value, 600);
if($ret) if($ret)
return $value; return $value;
@ -193,7 +209,7 @@ function get_pconfig($uid,$family, $key, $instore = false) {
} }
} }
// If APC is enabled then fetch the data from there // If APC is enabled then fetch the data from there, else try XCache
if (function_exists("apc_fetch") AND function_exists("apc_exists")) if (function_exists("apc_fetch") AND function_exists("apc_exists"))
if (apc_exists($uid."|".$family."|".$key)) { if (apc_exists($uid."|".$family."|".$key)) {
$val = apc_fetch($uid."|".$family."|".$key); $val = apc_fetch($uid."|".$family."|".$key);
@ -204,6 +220,16 @@ function get_pconfig($uid,$family, $key, $instore = false) {
else else
return $val; return $val;
} }
elseif (function_exists("xcache_get") AND function_exists("xcache_isset"))
if (xcache_isset($uid."|".$family."|".$key)) {
$val = xcache_get($uid."|".$family."|".$key);
$a->config[$uid][$family][$key] = $val;
if ($val === '!<unset>!')
return false;
else
return $val;
}
$ret = q("SELECT `v` FROM `pconfig` WHERE `uid` = %d AND `cat` = '%s' AND `k` = '%s' LIMIT 1", $ret = q("SELECT `v` FROM `pconfig` WHERE `uid` = %d AND `cat` = '%s' AND `k` = '%s' LIMIT 1",
@ -216,18 +242,22 @@ function get_pconfig($uid,$family, $key, $instore = false) {
$val = (preg_match("|^a:[0-9]+:{.*}$|s", $ret[0]['v'])?unserialize( $ret[0]['v']):$ret[0]['v']); $val = (preg_match("|^a:[0-9]+:{.*}$|s", $ret[0]['v'])?unserialize( $ret[0]['v']):$ret[0]['v']);
$a->config[$uid][$family][$key] = $val; $a->config[$uid][$family][$key] = $val;
// If APC is enabled then store the data there // If APC is enabled then store the data there, else try XCache
if (function_exists("apc_store")) if (function_exists("apc_store"))
apc_store($uid."|".$family."|".$key, $val, 600); apc_store($uid."|".$family."|".$key, $val, 600);
elseif (function_exists("xcache_set"))
xcache_set($uid."|".$family."|".$key, $val, 600);
return $val; return $val;
} }
else { else {
$a->config[$uid][$family][$key] = '!<unset>!'; $a->config[$uid][$family][$key] = '!<unset>!';
// If APC is enabled then store the data there // If APC is enabled then store the data there, else try XCache
if (function_exists("apc_store")) if (function_exists("apc_store"))
apc_store($uid."|".$family."|".$key, '!<unset>!', 600); apc_store($uid."|".$family."|".$key, '!<unset>!', 600);
elseif (function_exists("xcache_set"))
xcache_set($uid."|".$family."|".$key, '!<unset>!', 600);
} }
return false; return false;
}} }}
@ -238,13 +268,15 @@ function del_config($family,$key) {
global $a; global $a;
if(x($a->config[$family],$key)) if(x($a->config[$family],$key))
unset($a->config[$family][$key]); unset($a->config[$family][$key]);
$ret = q("DELETE FROM `config` WHERE `cat` = '%s' AND `k` = '%s' LIMIT 1", $ret = q("DELETE FROM `config` WHERE `cat` = '%s' AND `k` = '%s'",
dbesc($family), dbesc($family),
dbesc($key) dbesc($key)
); );
// If APC is enabled then store the data there // If APC is enabled then delete the data from there, else try XCache
if (function_exists("apc_delete")) if (function_exists("apc_delete"))
apc_delete($family."|".$key); apc_delete($family."|".$key);
elseif (function_exists("xcache_unset"))
xcache_unset($family."|".$key);
return $ret; return $ret;
}} }}
@ -274,7 +306,7 @@ function set_pconfig($uid,$family,$key,$value) {
return $value; return $value;
return $ret; return $ret;
} }
$ret = q("UPDATE `pconfig` SET `v` = '%s' WHERE `uid` = %d AND `cat` = '%s' AND `k` = '%s' LIMIT 1", $ret = q("UPDATE `pconfig` SET `v` = '%s' WHERE `uid` = %d AND `cat` = '%s' AND `k` = '%s'",
dbesc($dbvalue), dbesc($dbvalue),
intval($uid), intval($uid),
dbesc($family), dbesc($family),
@ -283,9 +315,11 @@ function set_pconfig($uid,$family,$key,$value) {
$a->config[$uid][$family][$key] = $value; $a->config[$uid][$family][$key] = $value;
// If APC is enabled then store the data there // If APC is enabled then store the data there, else try XCache
if (function_exists("apc_store")) if (function_exists("apc_store"))
apc_store($uid."|".$family."|".$key, $value, 600); apc_store($uid."|".$family."|".$key, $value, 600);
elseif (function_exists("xcache_set"))
xcache_set($uid."|".$family."|".$key, $value, 600);
if($ret) if($ret)
@ -299,7 +333,7 @@ function del_pconfig($uid,$family,$key) {
global $a; global $a;
if(x($a->config[$uid][$family],$key)) if(x($a->config[$uid][$family],$key))
unset($a->config[$uid][$family][$key]); unset($a->config[$uid][$family][$key]);
$ret = q("DELETE FROM `pconfig` WHERE `uid` = %d AND `cat` = '%s' AND `k` = '%s' LIMIT 1", $ret = q("DELETE FROM `pconfig` WHERE `uid` = %d AND `cat` = '%s' AND `k` = '%s'",
intval($uid), intval($uid),
dbesc($family), dbesc($family),
dbesc($key) dbesc($key)