From f26f87deb3e34713bb41a6cb6bbddbfcfb1f05e8 Mon Sep 17 00:00:00 2001 From: Daniel Kahl Date: Sat, 17 Sep 2016 20:45:48 +0200 Subject: [PATCH] #no-ticket * bugfix remember method * update tests * bugfix CacheElement update method --- src/Cache.php | 12 ++++-------- src/CacheElement.php | 18 +++++++++++++++--- test/FileCacheTest.php | 9 ++++----- 3 files changed, 23 insertions(+), 16 deletions(-) diff --git a/src/Cache.php b/src/Cache.php index 8edae33..42bb0b9 100644 --- a/src/Cache.php +++ b/src/Cache.php @@ -68,11 +68,7 @@ public function set($key, $value, $lifetime = null, $refresh = null) if (is_null($element = $this->getOrFetchCacheElement($key))) { $this->_cache[$key] = $this->newCacheElement($key, $value, $lifetime, $refresh); } else { - $element->update( - $value, - $lifetime ?: $element->getLifetime(), - $refresh ?: $this->_default_refresh - ); + $element->update($value, $lifetime, $refresh); } return $this; } @@ -92,17 +88,17 @@ public function forget($key) /** * @param $key - * @param \Closure $call + * @param callable $call * @param int|null $lifetime * @param bool|null $refresh * @return $this */ - public function remember($key, \Closure $call, $lifetime = null, $refresh = null) + public function remember($key, callable $call, $lifetime = null, $refresh = null) { if (!$this->has($key)) { $this->_cache[$key] = $this->newCacheElement($key, $call(), $lifetime, $refresh); } - return $this; + return $this->get($key); } /** diff --git a/src/CacheElement.php b/src/CacheElement.php index d5333cb..9d4fbcf 100644 --- a/src/CacheElement.php +++ b/src/CacheElement.php @@ -38,12 +38,16 @@ public function __construct(Cache $cache_instance, $key, $value, $lifetime = 60, * @param int $lifetime * @param bool $refresh */ - public function update($value, $lifetime = 60, $refresh = false) + public function update($value, $lifetime = null, $refresh = null) { $this->_value = (string)$value; - $this->_lifetime = $lifetime; + if (!is_null($lifetime)) { + $this->_lifetime = $lifetime; + } + if (!is_null($refresh)) { + $this->_refresh = $refresh; + } $this->_start = time(); - $this->_refresh = $refresh; $this->_modified = true; } @@ -58,11 +62,19 @@ public function getValue() return $this->_value; } + /** + * @return int + */ public function getLifeTime() { return $this->_lifetime; } + public function getRefresh() + { + return $this->_refresh; + } + /** * */ diff --git a/test/FileCacheTest.php b/test/FileCacheTest.php index cf3a340..af7443e 100644 --- a/test/FileCacheTest.php +++ b/test/FileCacheTest.php @@ -30,13 +30,12 @@ public function test() $this->assertNull($cache->get("foo")); // test remember - $cache->remember("foo2", function () { + $this->assertEquals("bar2", $cache->remember("foo2", function () { return "bar2"; - }); - $cache->remember("foo2", function () { + })); + $this->assertEquals("bar2", $cache->remember("foo2", function () { return "this will never be set"; - }); - $this->assertEquals("bar2", $cache->get("foo2")); + })); // test timeout $cache->set("foo3", "bar3", 1);