Open Journal Systems  3.3.0
XCacheCache.inc.php
1 <?php
2 
18 import('lib.pkp.classes.cache.GenericCache');
19 
20 class XCacheCache extends GenericCache {
25  parent::__construct($context, $cacheId, $fallback);
26  }
27 
31  function flush() {
32  $prefix = INDEX_FILE_LOCATION . ':' . $this->getContext() . ':' . $this->getCacheId();
33  if (function_exists('xcache_unset_by_prefix')) {
34  // If possible, just flush the context
35  xcache_unset_by_prefix(prefix);
36  } else {
37  // Otherwise, we need to do this manually
38  for ($i = 0; $i < xcache_count(XC_TYPE_VAR); $i++) {
39  $cache = xcache_list(XC_TYPE_VAR, $i);
40  foreach ($cache['cache_list'] as $entry) {
41  if (substr($entry['name'], 0, strlen($prefix)) == $prefix) xcache_unset($entry['name']);
42  }
43  }
44  }
45  }
46 
51  function getCache($id) {
52  $key = INDEX_FILE_LOCATION . ':'. $this->getContext() . ':' . $this->getCacheId() . ':' . $id;
53  if (!xcache_isset($key)) return $this->cacheMiss;
54  $returner = unserialize(xcache_get($key));
55  return $returner;
56  }
57 
64  function setCache($id, $value) {
65  return (xcache_set(INDEX_FILE_LOCATION . ':' . $this->getContext() . ':' . $this->getCacheId() . ':' . $id, serialize($value)));
66  }
67 
72  function getCacheTime() {
73  return null;
74  }
75 
80  function setEntireCache($contents) {
81  foreach ($contents as $id => $value) {
82  $this->setCache($id, $value);
83  }
84  }
85 }
86 
87 
XCacheCache\flush
flush()
Definition: XCacheCache.inc.php:31
XCacheCache\setEntireCache
setEntireCache($contents)
Definition: XCacheCache.inc.php:80
GenericCache\getContext
getContext()
Definition: GenericCache.inc.php:121
XCacheCache\__construct
__construct($context, $cacheId, $fallback)
Definition: XCacheCache.inc.php:24
GenericCache\getCacheId
getCacheId()
Definition: GenericCache.inc.php:128
INDEX_FILE_LOCATION
const INDEX_FILE_LOCATION
Definition: index.php:64
XCacheCache\setCache
setCache($id, $value)
Definition: XCacheCache.inc.php:64
GenericCache\$cacheMiss
$cacheMiss
Definition: GenericCache.inc.php:35
XCacheCache\getCache
getCache($id)
Definition: XCacheCache.inc.php:51
GenericCache\$fallback
$fallback
Definition: GenericCache.inc.php:45
XCacheCache\getCacheTime
getCacheTime()
Definition: XCacheCache.inc.php:72
GenericCache\$context
$context
Definition: GenericCache.inc.php:28
XCacheCache
Provides caching based on XCache's variable store.
Definition: XCacheCache.inc.php:20
GenericCache
Provides implementation-independent caching. Although this class is intended to be overridden with a ...
Definition: GenericCache.inc.php:23
GenericCache\$cacheId
$cacheId
Definition: GenericCache.inc.php:33