Use apcu_* functions for APC cache

PHP 7에서는 apcu 확장모듈이 apc의 기능을 제공합니다.
이 때 apcu_* 함수는 존재하지만, apc_* 함수가 존재한다는 보장은 없습니다.
(리눅스 배포판에 따라서는 apcu-bc 패키지를 추가로 설치해야 합니다.)

라이믹스는 PHP 7만을 타겟으로 하므로, apcu_* 함수를 직접 사용하도록
변경하여 apc_* 함수가 존재하지 않는 경우 오류가 발생하지 않도록 합니다.
This commit is contained in:
Kijin Sung 2018-12-19 16:52:36 +09:00
parent a83785bc42
commit ea5d955072

View file

@ -49,7 +49,7 @@ class APC implements \Rhymix\Framework\Drivers\CacheInterface
*/ */
public static function isSupported() public static function isSupported()
{ {
return function_exists('apc_exists'); return function_exists('apcu_exists');
} }
/** /**
@ -75,7 +75,7 @@ class APC implements \Rhymix\Framework\Drivers\CacheInterface
*/ */
public function get($key) public function get($key)
{ {
$value = apc_fetch($key); $value = apcu_fetch($key);
return $value === false ? null : $value; return $value === false ? null : $value;
} }
@ -93,7 +93,7 @@ class APC implements \Rhymix\Framework\Drivers\CacheInterface
*/ */
public function set($key, $value, $ttl = 0, $force = false) public function set($key, $value, $ttl = 0, $force = false)
{ {
return apc_store($key, $value, $ttl); return apcu_store($key, $value, $ttl);
} }
/** /**
@ -107,7 +107,7 @@ class APC implements \Rhymix\Framework\Drivers\CacheInterface
*/ */
public function delete($key) public function delete($key)
{ {
return apc_delete($key); return apcu_delete($key);
} }
/** /**
@ -120,7 +120,7 @@ class APC implements \Rhymix\Framework\Drivers\CacheInterface
*/ */
public function exists($key) public function exists($key)
{ {
return apc_exists($key); return apcu_exists($key);
} }
/** /**
@ -135,10 +135,10 @@ class APC implements \Rhymix\Framework\Drivers\CacheInterface
*/ */
public function incr($key, $amount) public function incr($key, $amount)
{ {
$result = apc_inc($key, $amount); $result = apcu_inc($key, $amount);
if ($result === false) if ($result === false)
{ {
apc_store($key, $amount); apcu_store($key, $amount);
$result = $amount; $result = $amount;
} }
return $result; return $result;
@ -156,10 +156,10 @@ class APC implements \Rhymix\Framework\Drivers\CacheInterface
*/ */
public function decr($key, $amount) public function decr($key, $amount)
{ {
$result = apc_dec($key, $amount); $result = apcu_dec($key, $amount);
if ($result === false) if ($result === false)
{ {
apc_store($key, 0 - $amount); apcu_store($key, 0 - $amount);
$result = 0 - $amount; $result = 0 - $amount;
} }
return $result; return $result;
@ -174,6 +174,6 @@ class APC implements \Rhymix\Framework\Drivers\CacheInterface
*/ */
public function clear() public function clear()
{ {
return apc_clear_cache('user'); return apcu_clear_cache();
} }
} }