XpressEngine Core  1.11.2
 All Classes Namespaces Files Functions Variables Pages
CacheApc.class.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (C) NAVER <http://www.navercorp.com> */
3 
9 class CacheApc extends CacheBase
10 {
11  public static $isSupport = false;
12 
19  function getInstance($opt = null)
20  {
21  if(!$GLOBALS['__CacheApc__'])
22  {
23  $GLOBALS['__CacheApc__'] = new CacheApc();
24  }
25  return $GLOBALS['__CacheApc__'];
26  }
27 
33  function __construct()
34  {
35  }
36 
42  function isSupport()
43  {
44  return self::$isSupport;
45  }
46 
57  function put($key, $buff, $valid_time = 0)
58  {
59  if($valid_time == 0)
60  {
62  }
63 
64  return apc_store(md5(_XE_PATH_ . $key), array($_SERVER['REQUEST_TIME'], $buff), $valid_time);
65  }
66 
75  function isValid($key, $modified_time = 0)
76  {
77  $_key = md5(_XE_PATH_ . $key);
78  $obj = apc_fetch($_key, $success);
79  if(!$success || !is_array($obj))
80  {
81  return false;
82  }
83  unset($obj[1]);
84 
85  if($modified_time > 0 && $modified_time > $obj[0])
86  {
87  $this->delete($key);
88  return false;
89  }
90 
91  return true;
92  }
93 
102  function get($key, $modified_time = 0)
103  {
104  $_key = md5(_XE_PATH_ . $key);
105  $obj = apc_fetch($_key, $success);
106  if(!$success || !is_array($obj))
107  {
108  return false;
109  }
110 
111  if($modified_time > 0 && $modified_time > $obj[0])
112  {
113  $this->delete($key);
114  return false;
115  }
116 
117  return $obj[1];
118  }
119 
126  function delete($key)
127  {
128  $_key = md5(_XE_PATH_ . $key);
129  return apc_delete($_key);
130  }
131 
137  function truncate()
138  {
139  return apc_clear_cache('user');
140  }
141 
145  function _delete($key)
146  {
147  return $this->delete($key);
148  }
149 }
150 
151 CacheApc::$isSupport = function_exists('apc_add');
152 
153 /* End of file CacheApc.class.php */
154 /* Location: ./classes/cache/CacheApc.class.php */
$obj
Definition: ko.install.php:262
static $isSupport
if(file_exists(_XE_PATH_. 'config/config.user.inc.php')) if(!defined('__DEBUG__')) if(!defined('__DEBUG_OUTPUT__')) if(!defined('__DEBUG_PROTECT__')) if(!defined('__DEBUG_PROTECT_IP__')) if(!defined('__DEBUG_DB_OUTPUT__')) if(!defined('__LOG_SLOW_QUERY__')) if(!defined('__LOG_SLOW_TRIGGER__')) if(!defined('__LOG_SLOW_ADDON__')) if(!defined('__LOG_SLOW_WIDGET__')) if(!defined('__DEBUG_QUERY__')) if(!defined('__OB_GZHANDLER_ENABLE__')) if(!defined('__ENABLE_PHPUNIT_TEST__')) if(!defined('__PROXY_SERVER__')) if(!defined('__ERROR_LOG__')) if(!defined('__DISABLE_DEFAULT_CSS__')) if(!defined('__AUTO_OPCACHE_INVALIDATE__')) if((__DEBUG_OUTPUT__==2)&&version_compare(PHP_VERSION, '6.0.0')===-1) if(version_compare(PHP_VERSION, '5.3.0') >=0) $GLOBALS['__xe_autoload_file_map']
Definition: config.inc.php:324
isValid($key, $modified_time=0)
const _XE_PATH_
Definition: config.inc.php:49
put($key, $buff, $valid_time=0)
getInstance($opt=null)