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
|
||||
| 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
|
||||
| in your environment, try file or database caching.
|
||||
|
|
||||
|
|
|
@ -56,6 +56,9 @@ protected static function factory($driver)
|
|||
case 'memcached':
|
||||
return new Cache\Drivers\Memcached(Memcached::connection(), Config::get('cache.key'));
|
||||
|
||||
case 'memory':
|
||||
return new Cache\Drivers\Memory;
|
||||
|
||||
case 'redis':
|
||||
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