From 9afe5c8670a071b9cd79bcc1cad0f41d386f0cde Mon Sep 17 00:00:00 2001 From: Michael Vogel Date: Sun, 9 Mar 2014 09:24:41 +0100 Subject: [PATCH] Support for xcache --- include/config.php | 60 ++++++++++++++++++++++++++++++++++++---------- 1 file changed, 47 insertions(+), 13 deletions(-) diff --git a/include/config.php b/include/config.php index 2664b78a88..e9da8e7b3d 100644 --- a/include/config.php +++ b/include/config.php @@ -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 (apc_exists($family."|".$key)) { $val = apc_fetch($family."|".$key); $a->config[$family][$key] = $val; + if ($val === '!!') + 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 === '!!') return false; 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']); $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")) apc_store($family."|".$key, $val, 600); + elseif (function_exists("xcache_set")) + xcache_set($family."|".$key, $val, 600); return $val; } else { $a->config[$family][$key] = '!!'; - // 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")) apc_store($family."|".$key, '!!', 600); + elseif (function_exists("xcache_set")) + xcache_set($family."|".$key, '!!', 600); } return false; }} @@ -134,7 +148,7 @@ function set_config($family,$key,$value) { 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($family), dbesc($key) @@ -142,9 +156,11 @@ function set_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")) apc_store($family."|".$key, $value, 600); + elseif (function_exists("xcache_set")) + xcache_set($family."|".$key, $value, 600); if($ret) 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 (apc_exists($uid."|".$family."|".$key)) { $val = apc_fetch($uid."|".$family."|".$key); @@ -204,6 +220,16 @@ function get_pconfig($uid,$family, $key, $instore = false) { else 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 === '!!') + return false; + else + return $val; + } $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']); $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")) apc_store($uid."|".$family."|".$key, $val, 600); + elseif (function_exists("xcache_set")) + xcache_set($uid."|".$family."|".$key, $val, 600); return $val; } else { $a->config[$uid][$family][$key] = '!!'; - // 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")) apc_store($uid."|".$family."|".$key, '!!', 600); + elseif (function_exists("xcache_set")) + xcache_set($uid."|".$family."|".$key, '!!', 600); } return false; }} @@ -238,13 +268,15 @@ function del_config($family,$key) { global $a; if(x($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($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")) apc_delete($family."|".$key); + elseif (function_exists("xcache_unset")) + xcache_unset($family."|".$key); return $ret; }} @@ -274,7 +306,7 @@ function set_pconfig($uid,$family,$key,$value) { return $value; 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), intval($uid), dbesc($family), @@ -283,9 +315,11 @@ function set_pconfig($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")) apc_store($uid."|".$family."|".$key, $value, 600); + elseif (function_exists("xcache_set")) + xcache_set($uid."|".$family."|".$key, $value, 600); if($ret) @@ -299,7 +333,7 @@ function del_pconfig($uid,$family,$key) { global $a; if(x($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), dbesc($family), dbesc($key)