src/Laravel/LaravelDoctrineCache.php
<?php
/**
* PHP Version 5
*
* @category H24
* @package
* @author "Yury Kozyrev" <yury.kozyrev@home24.de>
* @copyright 2015 Home24 GmbH
* @license Proprietary license.
* @link http://www.home24.de
*/
namespace Kozz\Laravel;
use Doctrine\Common\Cache\Cache;
use Illuminate\Container\Container;
class LaravelDoctrineCache implements Cache
{
/**
* @var \Illuminate\Contracts\Cache\Repository
*/
protected $laravelCache;
public function __construct()
{
$this->laravelCache = Container::getInstance()->offsetGet('cache');
}
/**
* Fetches an entry from the cache.
*
* @param string $id The id of the cache entry to fetch.
*
* @return mixed The cached data or FALSE, if no cache entry exists for the given id.
*/
public function fetch($id)
{
return $this->laravelCache->get($id, false);
}
/**
* Tests if an entry exists in the cache.
*
* @param string $id The cache id of the entry to check for.
*
* @return boolean TRUE if a cache entry exists for the given cache id, FALSE otherwise.
*/
public function contains($id)
{
return $this->laravelCache->has($id);
}
/**
* Puts data into the cache.
*
* @param string $id The cache id.
* @param mixed $data The cache entry/data.
* @param int $lifeTime The cache lifetime.
* If != 0, sets a specific lifetime for this cache entry (0 => infinite lifeTime).
*
* @return boolean TRUE if the entry was successfully stored in the cache, FALSE otherwise.
*/
public function save($id, $data, $lifeTime = 0)
{
$lifeTime = max(0, $lifeTime);
return $lifeTime
? $this->laravelCache->add($id, $data, $lifeTime)
: $this->laravelCache->forever($id, $data);
}
/**
* Deletes a cache entry.
*
* @param string $id The cache id.
*
* @return boolean TRUE if the cache entry was successfully deleted, FALSE otherwise.
*/
public function delete($id)
{
return $this->laravelCache->get($id);
}
/**
* Retrieves cached information from the data store.
*
* The server's statistics array has the following values:
*
* - <b>hits</b>
* Number of keys that have been requested and found present.
*
* - <b>misses</b>
* Number of items that have been requested and not found.
*
* - <b>uptime</b>
* Time that the server is running.
*
* - <b>memory_usage</b>
* Memory used by this server to store items.
*
* - <b>memory_available</b>
* Memory allowed to use for storage.
*
* @since 2.2
*
* @return array|null An associative array with server's statistics if available, NULL otherwise.
*/
public function getStats()
{
return null;
}
}