From b6d845adc4583d64f7569a855f0ee85bd95c3e03 Mon Sep 17 00:00:00 2001 From: mark_story Date: Sat, 18 Sep 2010 12:32:43 -0400 Subject: [PATCH] Updating calls of Cache::set() inside Cache. Updating the documentation for set() so it better explains how the temporary settings work. Updating APC and Memcache engine tests to reflect the lack of state being stored inside Cache. --- cake/libs/cache.php | 25 ++++---- cake/tests/cases/libs/cache/apc.test.php | 50 ++++++++-------- cake/tests/cases/libs/cache/memcache.test.php | 58 +++++++++---------- 3 files changed, 68 insertions(+), 65 deletions(-) diff --git a/cake/libs/cache.php b/cake/libs/cache.php index 3dd13426463..b674bd39055 100644 --- a/cake/libs/cache.php +++ b/cake/libs/cache.php @@ -172,8 +172,10 @@ protected static function _loadEngine($name, $plugin = null) { } /** - * Temporarily change settings to current config options. if no params are passed, resets settings if needed - * Cache::write() will reset the configuration changes made + * Temporarily change the settings on a cache config. The settings will persist for the next write + * operation (write, decrement, increment, clear). Any reads that are done before the write, will + * use the modified settings. If `$settings` is empty, the settings will be reset to the + * original configuration. * * Can be called with 2 or 3 parameters. To set multiple values at once. * @@ -183,6 +185,10 @@ protected static function _loadEngine($name, $plugin = null) { * * `Cache::set('duration', '+30 minutes', 'my_config');` * + * To reset a config back to the originally configured values. + * + * `Cache::set(null, 'my_config');` + * * @param mixed $settings Optional string for simple name-value pair or array * @param string $value Optional for a simple name-value pair * @param string $config The configuration name you are changing. Defaults to 'default' @@ -265,7 +271,7 @@ public static function write($key, $value, $config = 'default') { } $success = self::$_engines[$config]->write($settings['prefix'] . $key, $value, $settings['duration']); - self::set(array(), null, $config); + self::set(null, $config); if ($success === false && $value !== '') { trigger_error( sprintf(__("%s cache was unable to write '%s' to cache", true), $config, $key), @@ -307,10 +313,7 @@ public static function read($key, $config = 'default') { if (!$key) { return false; } - $success = self::$_engines[$config]->read($settings['prefix'] . $key); - - self::set(array(), null, $config); - return $success; + return self::$_engines[$config]->read($settings['prefix'] . $key); } /** @@ -337,7 +340,7 @@ public static function increment($key, $offset = 1, $config = 'default') { return false; } $success = self::$_engines[$config]->increment($settings['prefix'] . $key, $offset); - self::set(array(), null, $config); + self::set(null, $config); return $success; } /** @@ -364,7 +367,7 @@ public static function decrement($key, $offset = 1, $config = 'default') { return false; } $success = self::$_engines[$config]->decrement($settings['prefix'] . $key, $offset); - self::set(array(), null, $config); + self::set(null, $config); return $success; } /** @@ -399,7 +402,7 @@ public static function delete($key, $config = 'default') { } $success = self::$_engines[$config]->delete($settings['prefix'] . $key); - self::set(array(), null, $config); + self::set(null, $config); return $success; } @@ -421,7 +424,7 @@ public static function clear($check = false, $config = 'default') { return false; } $success = self::$_engines[$config]->clear($check); - self::set(array(), null, $config); + self::set(null, $config); return $success; } diff --git a/cake/tests/cases/libs/cache/apc.test.php b/cake/tests/cases/libs/cache/apc.test.php index 883f9b852cd..9d2e81f0889 100644 --- a/cake/tests/cases/libs/cache/apc.test.php +++ b/cake/tests/cases/libs/cache/apc.test.php @@ -74,21 +74,21 @@ function tearDown() { * @return void */ function testReadAndWriteCache() { - Cache::set(array('duration' => 1)); + Cache::set(array('duration' => 1), 'apc'); - $result = Cache::read('test'); + $result = Cache::read('test', 'apc'); $expecting = ''; $this->assertEqual($result, $expecting); $data = 'this is a test of the emergency broadcasting system'; - $result = Cache::write('test', $data); + $result = Cache::write('test', $data, 'apc'); $this->assertTrue($result); - $result = Cache::read('test'); + $result = Cache::read('test', 'apc'); $expecting = $data; $this->assertEqual($result, $expecting); - Cache::delete('test'); + Cache::delete('test', 'apc'); } /** @@ -98,31 +98,31 @@ function testReadAndWriteCache() { * @return void */ function testExpiry() { - Cache::set(array('duration' => 1)); + Cache::set(array('duration' => 1), 'apc'); - $result = Cache::read('test'); + $result = Cache::read('test', 'apc'); $this->assertFalse($result); $data = 'this is a test of the emergency broadcasting system'; - $result = Cache::write('other_test', $data); + $result = Cache::write('other_test', $data, 'apc'); $this->assertTrue($result); sleep(2); - $result = Cache::read('other_test'); + $result = Cache::read('other_test', 'apc'); $this->assertFalse($result); - Cache::set(array('duration' => 1)); + Cache::set(array('duration' => 1), 'apc'); $data = 'this is a test of the emergency broadcasting system'; - $result = Cache::write('other_test', $data); + $result = Cache::write('other_test', $data, 'apc'); $this->assertTrue($result); sleep(2); - $result = Cache::read('other_test'); + $result = Cache::read('other_test', 'apc'); $this->assertFalse($result); sleep(2); - $result = Cache::read('other_test'); + $result = Cache::read('other_test', 'apc'); $this->assertFalse($result); } @@ -134,10 +134,10 @@ function testExpiry() { */ function testDeleteCache() { $data = 'this is a test of the emergency broadcasting system'; - $result = Cache::write('delete_test', $data); + $result = Cache::write('delete_test', $data, 'apc'); $this->assertTrue($result); - $result = Cache::delete('delete_test'); + $result = Cache::delete('delete_test', 'apc'); $this->assertTrue($result); } @@ -151,19 +151,19 @@ function testDecrement() { if ($this->skipIf(!function_exists('apc_dec'), 'No apc_dec() function, cannot test decrement() %s')) { return; } - $result = Cache::write('test_decrement', 5); + $result = Cache::write('test_decrement', 5, 'apc'); $this->assertTrue($result); - $result = Cache::decrement('test_decrement'); + $result = Cache::decrement('test_decrement', 1, 'apc'); $this->assertEqual(4, $result); - $result = Cache::read('test_decrement'); + $result = Cache::read('test_decrement', 'apc'); $this->assertEqual(4, $result); - $result = Cache::decrement('test_decrement', 2); + $result = Cache::decrement('test_decrement', 2, 'apc'); $this->assertEqual(2, $result); - $result = Cache::read('test_decrement'); + $result = Cache::read('test_decrement', 'apc'); $this->assertEqual(2, $result); } @@ -178,19 +178,19 @@ function testIncrement() { if ($this->skipIf(!function_exists('apc_inc'), 'No apc_inc() function, cannot test increment() %s')) { return; } - $result = Cache::write('test_increment', 5); + $result = Cache::write('test_increment', 5, 'apc'); $this->assertTrue($result); - $result = Cache::increment('test_increment'); + $result = Cache::increment('test_increment', 1, 'apc'); $this->assertEqual(6, $result); - $result = Cache::read('test_increment'); + $result = Cache::read('test_increment', 'apc'); $this->assertEqual(6, $result); - $result = Cache::increment('test_increment', 2); + $result = Cache::increment('test_increment', 2, 'apc'); $this->assertEqual(8, $result); - $result = Cache::read('test_increment'); + $result = Cache::read('test_increment', 'apc'); $this->assertEqual(8, $result); } } diff --git a/cake/tests/cases/libs/cache/memcache.test.php b/cake/tests/cases/libs/cache/memcache.test.php index 907281175f8..61b8e9ad86b 100644 --- a/cake/tests/cases/libs/cache/memcache.test.php +++ b/cake/tests/cases/libs/cache/memcache.test.php @@ -78,7 +78,7 @@ function tearDown() { * @return void */ function testSettings() { - $settings = Cache::settings(); + $settings = Cache::settings('memcache'); unset($settings['serialize'], $settings['path']); $expecting = array( 'prefix' => 'cake_', @@ -141,21 +141,21 @@ function testConnect() { * @return void */ function testReadAndWriteCache() { - Cache::set(array('duration' => 1)); + Cache::set(array('duration' => 1), null, 'memcache'); - $result = Cache::read('test'); + $result = Cache::read('test', 'memcache'); $expecting = ''; $this->assertEqual($result, $expecting); $data = 'this is a test of the emergency broadcasting system'; - $result = Cache::write('test', $data); + $result = Cache::write('test', $data, 'memcache'); $this->assertTrue($result); - $result = Cache::read('test'); + $result = Cache::read('test', 'memcache'); $expecting = $data; $this->assertEqual($result, $expecting); - Cache::delete('test'); + Cache::delete('test', 'memcache'); } /** @@ -165,42 +165,42 @@ function testReadAndWriteCache() { * @return void */ function testExpiry() { - Cache::set(array('duration' => 1)); + Cache::set(array('duration' => 1), 'memcache'); - $result = Cache::read('test'); + $result = Cache::read('test', 'memcache'); $this->assertFalse($result); $data = 'this is a test of the emergency broadcasting system'; - $result = Cache::write('other_test', $data); + $result = Cache::write('other_test', $data, 'memcache'); $this->assertTrue($result); sleep(2); - $result = Cache::read('other_test'); + $result = Cache::read('other_test', 'memcache'); $this->assertFalse($result); - Cache::set(array('duration' => "+1 second")); + Cache::set(array('duration' => "+1 second"), 'memcache'); $data = 'this is a test of the emergency broadcasting system'; - $result = Cache::write('other_test', $data); + $result = Cache::write('other_test', $data, 'memcache'); $this->assertTrue($result); sleep(2); - $result = Cache::read('other_test'); + $result = Cache::read('other_test', 'memcache'); $this->assertFalse($result); Cache::config('memcache', array('duration' => '+1 second')); sleep(2); - $result = Cache::read('other_test'); + $result = Cache::read('other_test', 'memcache'); $this->assertFalse($result); - Cache::config('memcache', array('duration' => '+30 day')); + Cache::config('memcache', array('duration' => '+30 days')); $data = 'this is a test of the emergency broadcasting system'; - $result = Cache::write('long_expiry_test', $data); + $result = Cache::write('long_expiry_test', $data, 'memcache'); $this->assertTrue($result); sleep(2); - $result = Cache::read('long_expiry_test'); + $result = Cache::read('long_expiry_test', 'memcache'); $expecting = $data; $this->assertEqual($result, $expecting); @@ -215,10 +215,10 @@ function testExpiry() { */ function testDeleteCache() { $data = 'this is a test of the emergency broadcasting system'; - $result = Cache::write('delete_test', $data); + $result = Cache::write('delete_test', $data, 'memcache'); $this->assertTrue($result); - $result = Cache::delete('delete_test'); + $result = Cache::delete('delete_test', 'memcache'); $this->assertTrue($result); } @@ -229,19 +229,19 @@ function testDeleteCache() { * @return void */ function testDecrement() { - $result = Cache::write('test_decrement', 5); + $result = Cache::write('test_decrement', 5, 'memcache'); $this->assertTrue($result); - $result = Cache::decrement('test_decrement'); + $result = Cache::decrement('test_decrement', 1, 'memcache'); $this->assertEqual(4, $result); - $result = Cache::read('test_decrement'); + $result = Cache::read('test_decrement', 'memcache'); $this->assertEqual(4, $result); - $result = Cache::decrement('test_decrement', 2); + $result = Cache::decrement('test_decrement', 2, 'memcache'); $this->assertEqual(2, $result); - $result = Cache::read('test_decrement'); + $result = Cache::read('test_decrement', 'memcache'); $this->assertEqual(2, $result); } @@ -252,19 +252,19 @@ function testDecrement() { * @return void */ function testIncrement() { - $result = Cache::write('test_increment', 5); + $result = Cache::write('test_increment', 5, 'memcache'); $this->assertTrue($result); - $result = Cache::increment('test_increment'); + $result = Cache::increment('test_increment', 1, 'memcache'); $this->assertEqual(6, $result); - $result = Cache::read('test_increment'); + $result = Cache::read('test_increment', 'memcache'); $this->assertEqual(6, $result); - $result = Cache::increment('test_increment', 2); + $result = Cache::increment('test_increment', 2, 'memcache'); $this->assertEqual(8, $result); - $result = Cache::read('test_increment'); + $result = Cache::read('test_increment', 'memcache'); $this->assertEqual(8, $result); }