Added "memory" (array based) cache driver for easier unit testing of application cache operations for developers.
Signed-off-by: Taylor Otwell <taylorotwell@gmail.com>
This commit is contained in:
parent
6f7780a0f8
commit
51183c348d
|
@ -11,7 +11,7 @@
|
||||||
| be used to increase the performance of your application by storing any
|
| be used to increase the performance of your application by storing any
|
||||||
| commonly accessed data in memory, a file, or some other storage.
|
| commonly accessed data in memory, a file, or some other storage.
|
||||||
|
|
|
|
||||||
| A variety of awesome drivers are available for you to use with Laravel.
|
| A variety of great drivers are available for you to use with Laravel.
|
||||||
| Some, like APC, are extremely fast. However, if that isn't an option
|
| Some, like APC, are extremely fast. However, if that isn't an option
|
||||||
| in your environment, try file or database caching.
|
| in your environment, try file or database caching.
|
||||||
|
|
|
|
||||||
|
|
|
@ -56,6 +56,9 @@ protected static function factory($driver)
|
||||||
case 'memcached':
|
case 'memcached':
|
||||||
return new Cache\Drivers\Memcached(Memcached::connection(), Config::get('cache.key'));
|
return new Cache\Drivers\Memcached(Memcached::connection(), Config::get('cache.key'));
|
||||||
|
|
||||||
|
case 'memory':
|
||||||
|
return new Cache\Drivers\Memory;
|
||||||
|
|
||||||
case 'redis':
|
case 'redis':
|
||||||
return new Cache\Drivers\Redis(Redis::db());
|
return new Cache\Drivers\Redis(Redis::db());
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,66 @@
|
||||||
|
<?php namespace Laravel\Cache\Drivers;
|
||||||
|
|
||||||
|
class Memory extends Driver {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The in-memory array of cached items.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $storage = array();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determine if an item exists in the cache.
|
||||||
|
*
|
||||||
|
* @param string $key
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function has($key)
|
||||||
|
{
|
||||||
|
return ( ! is_null($this->get($key)));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieve an item from the cache driver.
|
||||||
|
*
|
||||||
|
* @param string $key
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
protected function retrieve($key)
|
||||||
|
{
|
||||||
|
if (array_key_exists($key, $this->storage))
|
||||||
|
{
|
||||||
|
return $this->storage[$key];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Write an item to the cache for a given number of minutes.
|
||||||
|
*
|
||||||
|
* <code>
|
||||||
|
* // Put an item in the cache for 15 minutes
|
||||||
|
* Cache::put('name', 'Taylor', 15);
|
||||||
|
* </code>
|
||||||
|
*
|
||||||
|
* @param string $key
|
||||||
|
* @param mixed $value
|
||||||
|
* @param int $minutes
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function put($key, $value, $minutes)
|
||||||
|
{
|
||||||
|
$this->storage[$key] = $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Delete an item from the cache.
|
||||||
|
*
|
||||||
|
* @param string $key
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function forget($key)
|
||||||
|
{
|
||||||
|
unset($this->storage[$key]);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue