mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-09 03:32:00 +09:00
127 lines
2.2 KiB
PHP
127 lines
2.2 KiB
PHP
<?php
|
|
|
|
namespace Rhymix\Framework\Drivers\Cache;
|
|
|
|
/**
|
|
* The dummy cache driver.
|
|
*/
|
|
class Dummy extends File implements \Rhymix\Framework\Drivers\CacheInterface
|
|
{
|
|
/**
|
|
* Set this flag to false to disable cache prefixes.
|
|
*/
|
|
public $prefix = true;
|
|
|
|
/**
|
|
* Dummy data is stored here.
|
|
*/
|
|
public $data = array();
|
|
|
|
/**
|
|
* Get the value of a key.
|
|
*
|
|
* This method returns null if the key was not found.
|
|
*
|
|
* @param string $key
|
|
* @return mixed
|
|
*/
|
|
public function get($key)
|
|
{
|
|
$value = parent::get($key);
|
|
if ($value !== null)
|
|
{
|
|
return $value;
|
|
}
|
|
elseif (isset($this->data[$key]))
|
|
{
|
|
if ($this->data[$key][0] > 0 && $this->data[$key][0] < time())
|
|
{
|
|
unset($this->data[$key]);
|
|
return null;
|
|
}
|
|
return $this->data[$key][1];
|
|
}
|
|
else
|
|
{
|
|
return null;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Set the value to a key.
|
|
*
|
|
* This method returns true on success and false on failure.
|
|
* $ttl is measured in seconds. If it is zero, the key should not expire.
|
|
*
|
|
* @param string $key
|
|
* @param mixed $value
|
|
* @param int $ttl
|
|
* @param bool $force
|
|
* @return bool
|
|
*/
|
|
public function set($key, $value, $ttl = 0, $force = false)
|
|
{
|
|
if ($force)
|
|
{
|
|
return parent::set($key, $value, $ttl, $force);
|
|
}
|
|
else
|
|
{
|
|
$this->data[$key] = array($ttl ? (time() + $ttl) : 0, $value);
|
|
return true;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Delete a key.
|
|
*
|
|
* This method returns true on success and false on failure.
|
|
* If the key does not exist, it should return false.
|
|
*
|
|
* @param string $key
|
|
* @return bool
|
|
*/
|
|
public function delete($key)
|
|
{
|
|
if (parent::delete($key))
|
|
{
|
|
return true;
|
|
}
|
|
elseif (isset($this->data[$key]))
|
|
{
|
|
unset($this->data[$key]);
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Check if a key exists.
|
|
*
|
|
* This method returns true on success and false on failure.
|
|
*
|
|
* @param string $key
|
|
* @return bool
|
|
*/
|
|
public function exists($key)
|
|
{
|
|
return parent::exists($key) || isset($this->data[$key]);
|
|
}
|
|
|
|
/**
|
|
* Clear all keys from the cache.
|
|
*
|
|
* This method returns true on success and false on failure.
|
|
*
|
|
* @return bool
|
|
*/
|
|
public function clear()
|
|
{
|
|
parent::clear();
|
|
$this->data = array();
|
|
return true;
|
|
}
|
|
}
|