Alexander Makarov
8 years ago
12 changed files with 2 additions and 186 deletions
@ -1,106 +0,0 @@
|
||||
<?php |
||||
/** |
||||
* @link http://www.yiiframework.com/ |
||||
* @copyright Copyright (c) 2008 Yii Software LLC |
||||
* @license http://www.yiiframework.com/license/ |
||||
*/ |
||||
|
||||
namespace yii\caching; |
||||
|
||||
/** |
||||
* XCache provides XCache caching in terms of an application component. |
||||
* |
||||
* To use this application component, the [XCache PHP extension](http://xcache.lighttpd.net/) must be loaded. |
||||
* Also note that the [[flush()]] functionality will work correctly only if "xcache.admin.enable_auth" |
||||
* is set to "Off" in php.ini. |
||||
* |
||||
* See [[Cache]] for common cache operations that XCache supports. |
||||
* |
||||
* @author Qiang Xue <qiang.xue@gmail.com> |
||||
* @since 2.0 |
||||
*/ |
||||
class XCache extends Cache |
||||
{ |
||||
/** |
||||
* Checks whether a specified key exists in the cache. |
||||
* This can be faster than getting the value from the cache if the data is big. |
||||
* Note that this method does not check whether the dependency associated |
||||
* with the cached data, if there is any, has changed. So a call to [[get]] |
||||
* may return false while exists returns true. |
||||
* @param mixed $key a key identifying the cached value. This can be a simple string or |
||||
* a complex data structure consisting of factors representing the key. |
||||
* @return boolean true if a value exists in cache, false if the value is not in the cache or expired. |
||||
*/ |
||||
public function exists($key) |
||||
{ |
||||
$key = $this->buildKey($key); |
||||
|
||||
return xcache_isset($key); |
||||
} |
||||
|
||||
/** |
||||
* Retrieves a value from cache with a specified key. |
||||
* This is the implementation of the method declared in the parent class. |
||||
* @param string $key a unique key identifying the cached value |
||||
* @return string|boolean the value stored in cache, false if the value is not in the cache or expired. |
||||
*/ |
||||
protected function getValue($key) |
||||
{ |
||||
return xcache_isset($key) ? xcache_get($key) : false; |
||||
} |
||||
|
||||
/** |
||||
* Stores a value identified by a key in cache. |
||||
* This is the implementation of the method declared in the parent class. |
||||
* |
||||
* @param string $key the key identifying the value to be cached |
||||
* @param string $value the value to be cached |
||||
* @param integer $duration the number of seconds in which the cached value will expire. 0 means never expire. |
||||
* @return boolean true if the value is successfully stored into cache, false otherwise |
||||
*/ |
||||
protected function setValue($key, $value, $duration) |
||||
{ |
||||
return xcache_set($key, $value, $duration); |
||||
} |
||||
|
||||
/** |
||||
* Stores a value identified by a key into cache if the cache does not contain this key. |
||||
* This is the implementation of the method declared in the parent class. |
||||
* |
||||
* @param string $key the key identifying the value to be cached |
||||
* @param string $value the value to be cached |
||||
* @param integer $duration the number of seconds in which the cached value will expire. 0 means never expire. |
||||
* @return boolean true if the value is successfully stored into cache, false otherwise |
||||
*/ |
||||
protected function addValue($key, $value, $duration) |
||||
{ |
||||
return !xcache_isset($key) ? $this->setValue($key, $value, $duration) : false; |
||||
} |
||||
|
||||
/** |
||||
* Deletes a value with the specified key from cache |
||||
* This is the implementation of the method declared in the parent class. |
||||
* @param string $key the key of the value to be deleted |
||||
* @return boolean if no error happens during deletion |
||||
*/ |
||||
protected function deleteValue($key) |
||||
{ |
||||
return xcache_unset($key); |
||||
} |
||||
|
||||
/** |
||||
* Deletes all values from cache. |
||||
* This is the implementation of the method declared in the parent class. |
||||
* @return boolean whether the flush operation was successful. |
||||
*/ |
||||
protected function flushValues() |
||||
{ |
||||
for ($i = 0, $max = xcache_count(XC_TYPE_VAR); $i < $max; $i++) { |
||||
if (xcache_clear_cache(XC_TYPE_VAR, $i) === false) { |
||||
return false; |
||||
} |
||||
} |
||||
|
||||
return true; |
||||
} |
||||
} |
@ -1,30 +0,0 @@
|
||||
<?php |
||||
namespace yiiunit\framework\caching; |
||||
|
||||
use yii\caching\XCache; |
||||
|
||||
/** |
||||
* Class for testing xcache backend |
||||
* @group xcache |
||||
* @group caching |
||||
*/ |
||||
class XCacheTest extends CacheTestCase |
||||
{ |
||||
private $_cacheInstance = null; |
||||
|
||||
/** |
||||
* @return XCache |
||||
*/ |
||||
protected function getCacheInstance() |
||||
{ |
||||
if (!function_exists("xcache_isset")) { |
||||
$this->markTestSkipped("XCache not installed. Skipping."); |
||||
} |
||||
|
||||
if ($this->_cacheInstance === null) { |
||||
$this->_cacheInstance = new XCache(); |
||||
} |
||||
|
||||
return $this->_cacheInstance; |
||||
} |
||||
} |
@ -1,30 +0,0 @@
|
||||
<?php |
||||
namespace yiiunit\framework\caching; |
||||
|
||||
use yii\caching\ZendDataCache; |
||||
|
||||
/** |
||||
* Class for testing Zend cache backend |
||||
* @group zenddata |
||||
* @group caching |
||||
*/ |
||||
class ZendDataCacheTest extends CacheTestCase |
||||
{ |
||||
private $_cacheInstance = null; |
||||
|
||||
/** |
||||
* @return ZendDataCache |
||||
*/ |
||||
protected function getCacheInstance() |
||||
{ |
||||
if (!function_exists("zend_shm_cache_store")) { |
||||
$this->markTestSkipped("Zend Data cache not installed. Skipping."); |
||||
} |
||||
|
||||
if ($this->_cacheInstance === null) { |
||||
$this->_cacheInstance = new ZendDataCache(); |
||||
} |
||||
|
||||
return $this->_cacheInstance; |
||||
} |
||||
} |
Loading…
Reference in new issue