Commit 51183c34 authored by Taylor Otwell's avatar Taylor Otwell

Added "memory" (array based) cache driver for easier unit testing of...

Added "memory" (array based) cache driver for easier unit testing of application cache operations for developers.
Signed-off-by: 's avatarTaylor Otwell <taylorotwell@gmail.com>
parent 6f7780a0
...@@ -11,7 +11,7 @@ return array( ...@@ -11,7 +11,7 @@ return array(
| 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 @@ class Cache { ...@@ -56,6 +56,9 @@ class Cache {
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());
......
<?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]);
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment