XpressEngine Core  1.11.2
 All Classes Namespaces Files Functions Variables Pages
CacheFile.class.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (C) NAVER <http://www.navercorp.com> */
3 
11 class CacheFile extends CacheBase
12 {
17  var $cache_dir = 'files/cache/store/';
18 
24  function getInstance()
25  {
26  if(!$GLOBALS['__CacheFile__'])
27  {
28  $GLOBALS['__CacheFile__'] = new CacheFile();
29  }
30  return $GLOBALS['__CacheFile__'];
31  }
32 
38  function __construct()
39  {
40  $this->cache_dir = _XE_PATH_ . $this->cache_dir;
41  FileHandler::makeDir($this->cache_dir);
42  }
43 
50  function getCacheFileName($key)
51  {
52  return $this->cache_dir . str_replace(':', DIRECTORY_SEPARATOR, $key) . '.php';
53  }
54 
60  function isSupport()
61  {
62  return true;
63  }
64 
73  function put($key, $obj, $valid_time = 0)
74  {
75  $cache_file = $this->getCacheFileName($key);
76  $data = serialize($obj);
77  $data = str_replace('\\', '\\\\', $data);
78  $data = str_replace('\'', '\\\'', $data);
79  $content = array();
80  $content[] = '<?php';
81  $content[] = 'if(!defined(\'__XE__\')) { exit(); }';
82  $content[] = 'return \'' . $data . '\';';
83  FileHandler::writeFile($cache_file, implode(PHP_EOL, $content));
84  if(function_exists('opcache_invalidate'))
85  {
86  @opcache_invalidate($cache_file, true);
87  }
88  }
89 
97  function isValid($key, $modified_time = 0)
98  {
99  $cache_file = $this->getCacheFileName($key);
100 
101  if(file_exists($cache_file))
102  {
103  if($modified_time > 0 && filemtime($cache_file) < $modified_time)
104  {
105  FileHandler::removeFile($cache_file);
106  return false;
107  }
108 
109  return true;
110  }
111 
112  return false;
113  }
114 
122  function get($key, $modified_time = 0)
123  {
124  if(!$cache_file = FileHandler::exists($this->getCacheFileName($key)))
125  {
126  return false;
127  }
128 
129  if($modified_time > 0 && filemtime($cache_file) < $modified_time)
130  {
131  FileHandler::removeFile($cache_file);
132  return false;
133  }
134 
135  $content = include($cache_file);
136 
137  return unserialize($content);
138  }
139 
146  function _delete($_key)
147  {
148  $cache_file = $this->getCacheFileName($_key);
149  if(function_exists('opcache_invalidate'))
150  {
151  @opcache_invalidate($cache_file, true);
152  }
153  FileHandler::removeFile($cache_file);
154  }
155 
162  function delete($key)
163  {
164  $this->_delete($key);
165  }
166 
172  function truncate()
173  {
174  FileHandler::removeFilesInDir($this->cache_dir);
175  }
176 
177 }
178 /* End of file CacheFile.class.php */
179 /* Location: ./classes/cache/CacheFile.class.php */
$obj
Definition: ko.install.php:262
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
put($key, $obj, $valid_time=0)
getCacheFileName($key)
makeDir($path_string)
const _XE_PATH_
Definition: config.inc.php:49