diff --git a/laravel/cache/drivers/memcached.php b/laravel/cache/drivers/memcached.php index d7a7e5d7..3e6a454d 100644 --- a/laravel/cache/drivers/memcached.php +++ b/laravel/cache/drivers/memcached.php @@ -16,20 +16,6 @@ class Memcached extends Sectionable { */ protected $key; - /** - * Indicates that section caching is implicit based on keys. - * - * @var bool - */ - public $implicit = true; - - /** - * The implicit section key delimiter. - * - * @var string - */ - public $delimiter = '::'; - /** * Create a new Memcached cache driver instance. * @@ -73,19 +59,6 @@ class Memcached extends Sectionable { } } - /** - * Retrieve a sectioned item from the cache driver. - * - * @param string $section - * @param string $key - * @param mixed $default - * @return mixed - */ - public function get_from_section($section, $key, $default = null) - { - return $this->get($this->section_item_key($section, $key), $default); - } - /** * Write an item to the cache for a given number of minutes. * @@ -113,20 +86,6 @@ class Memcached extends Sectionable { } } - /** - * Write a sectioned item to the cache. - * - * @param string $section - * @param string $key - * @param mixed $value - * @param int $minutes - * @return void - */ - public function put_in_section($section, $key, $value, $minutes) - { - $this->put($this->section_item_key($section, $key), $value, $minutes); - } - /** * Write an item to the cache that lasts forever. * @@ -148,48 +107,6 @@ class Memcached extends Sectionable { } } - /** - * Write a sectioned item to the cache that lasts forever. - * - * @param string $section - * @param string $key - * @param mixed $value - * @return void - */ - public function forever_in_section($section, $key, $value) - { - return $this->forever($this->section_item_key($section, $key), $value); - } - - /** - * Get a sectioned item from the cache, or cache and return the default value. - * - * @param string $section - * @param string $key - * @param mixed $default - * @param int $minutes - * @return mixed - */ - public function remember_in_section($section, $key, $default, $minutes, $function = 'put') - { - $key = $this->section_item_key($section, $key); - - return $this->remember($key, $default, $minutes, $function); - } - - /** - * Get a sectioned item from the cache, or cache the default value forever. - * - * @param string $section - * @param string $key - * @param mixed $default - * @return mixed - */ - public function sear_in_section($section, $key, $default) - { - return $this->sear($this->section_item_key($section, $key), $default); - } - /** * Delete an item from the cache. * @@ -217,18 +134,6 @@ class Memcached extends Sectionable { } } - /** - * Delete a sectioned item from the cache. - * - * @param string $section - * @param string $key - * @return void - */ - public function forget_in_section($section, $key) - { - return $this->forget($this->section_item_key($section, $key)); - } - /** * Delete an entire section from the cache. * diff --git a/laravel/cache/drivers/memory.php b/laravel/cache/drivers/memory.php index 8dcdd0e4..9f57592c 100644 --- a/laravel/cache/drivers/memory.php +++ b/laravel/cache/drivers/memory.php @@ -28,22 +28,16 @@ class Memory extends Sectionable { */ protected function retrieve($key) { - return array_get($this->storage, $key); - } + if ($this->sectionable($key)) + { + list($section, $key) = $this->parse($key); - /** - * Retrieve a sectioned item from the cache driver. - * - * @param string $section - * @param string $key - * @param mixed $default - * @return mixed - */ - public function get_from_section($section, $key, $default = null) - { - $key = $this->section_item_key($section, $key); - - return array_get($this->storage, $key, $default); + return $this->get_from_section($section, $key); + } + else + { + return array_get($this->storage, $key); + } } /** @@ -61,21 +55,16 @@ class Memory extends Sectionable { */ public function put($key, $value, $minutes) { - array_set($this->storage, $key, $value); - } + if ($this->sectionable($key)) + { + list($section, $key) = $this->parse($key); - /** - * Write a sectioned item to the cache. - * - * @param string $section - * @param string $key - * @param mixed $value - * @param int $minutes - * @return void - */ - public function put_in_section($section, $key, $value, $minutes) - { - $this->put($this->section_item_key($section, $key), $value, $minutes); + return $this->put_in_section($section, $key, $value, $minutes); + } + else + { + array_set($this->storage, $key, $value); + } } /** @@ -87,49 +76,16 @@ class Memory extends Sectionable { */ public function forever($key, $value) { - $this->put($key, $value, 0); - } + if ($this->sectionable($key)) + { + list($section, $key) = $this->parse($key); - /** - * Write a sectioned item to the cache that lasts forever. - * - * @param string $section - * @param string $key - * @param mixed $value - * @return void - */ - public function forever_in_section($section, $key, $value) - { - $this->put_in_section($section, $key, $value, 0); - } - - /** - * Get a sectioned item from the cache, or cache and return the default value. - * - * @param string $section - * @param string $key - * @param mixed $default - * @param int $minutes - * @return mixed - */ - public function remember_in_section($section, $key, $default, $minutes, $function = 'put') - { - $key = $this->section_item_key($section, $key); - - return $this->remember($key, $default, $minutes, $function); - } - - /** - * Get a sectioned item from the cache, or cache the default value forever. - * - * @param string $section - * @param string $key - * @param mixed $default - * @return mixed - */ - public function sear_in_section($section, $key, $default) - { - return $this->sear($this->section_item_key($section, $key), $default); + return $this->forever_in_section($section, $key, $value); + } + else + { + $this->put($key, $value, 0); + } } /** @@ -140,19 +96,23 @@ class Memory extends Sectionable { */ public function forget($key) { - array_forget($this->storage, $key); - } + if ($this->sectionable($key)) + { + list($section, $key) = $this->parse($key); - /** - * Delete a sectioned item from the cache. - * - * @param string $section - * @param string $key - * @return void - */ - public function forget_in_section($section, $key) - { - $this->forget($this->section_item_key($section, $key)); + if ($key == '*') + { + $this->forget_section($section); + } + else + { + $this->forget_in_section($section, $key); + } + } + else + { + array_forget($this->storage, $key); + } } /** diff --git a/laravel/cache/drivers/sectionable.php b/laravel/cache/drivers/sectionable.php index 02bbb500..4ec78246 100644 --- a/laravel/cache/drivers/sectionable.php +++ b/laravel/cache/drivers/sectionable.php @@ -2,6 +2,20 @@ abstract class Sectionable extends Driver { + /** + * Indicates that section caching is implicit based on keys. + * + * @var bool + */ + public $implicit = true; + + /** + * The implicit section key delimiter. + * + * @var string + */ + public $delimiter = '::'; + /** * Retrieve a sectioned item from the cache driver. * @@ -10,7 +24,10 @@ abstract class Sectionable extends Driver { * @param mixed $default * @return mixed */ - abstract public function get_from_section($section, $key, $default = null); + public function get_from_section($section, $key, $default = null) + { + return $this->get($this->section_item_key($section, $key), $default); + } /** * Write a sectioned item to the cache. @@ -21,7 +38,10 @@ abstract class Sectionable extends Driver { * @param int $minutes * @return void */ - abstract public function put_in_section($section, $key, $value, $minutes); + public function put_in_section($section, $key, $value, $minutes) + { + $this->put($this->section_item_key($section, $key), $value, $minutes); + } /** * Write a sectioned item to the cache that lasts forever. @@ -31,7 +51,10 @@ abstract class Sectionable extends Driver { * @param mixed $value * @return void */ - abstract public function forever_in_section($section, $key, $value); + public function forever_in_section($section, $key, $value) + { + return $this->forever($this->section_item_key($section, $key), $value); + } /** * Get a sectioned item from the cache, or cache and return the default value. @@ -42,7 +65,12 @@ abstract class Sectionable extends Driver { * @param int $minutes * @return mixed */ - abstract public function remember_in_section($section, $key, $default, $minutes, $function = 'put'); + public function remember_in_section($section, $key, $default, $minutes, $function = 'put') + { + $key = $this->section_item_key($section, $key); + + return $this->remember($key, $default, $minutes, $function); + } /** * Get a sectioned item from the cache, or cache the default value forever. @@ -52,7 +80,10 @@ abstract class Sectionable extends Driver { * @param mixed $default * @return mixed */ - abstract public function sear_in_section($section, $key, $default); + public function sear_in_section($section, $key, $default) + { + return $this->sear($this->section_item_key($section, $key), $default); + } /** * Delete a sectioned item from the cache. @@ -61,7 +92,10 @@ abstract class Sectionable extends Driver { * @param string $key * @return void */ - abstract public function forget_in_section($section, $key); + public function forget_in_section($section, $key) + { + return $this->forget($this->section_item_key($section, $key)); + } /** * Delete an entire section from the cache.