From fad011274c54ecf3b874efcb0d9f3d4aa943b867 Mon Sep 17 00:00:00 2001 From: Carsten Brandt Date: Wed, 1 May 2013 18:42:38 +0200 Subject: [PATCH] added missing init() method to Cache class --- framework/caching/Cache.php | 12 ++++++++++++ framework/caching/RedisCache.php | 10 ++-------- tests/unit/framework/caching/CacheTest.php | 10 ++++++++++ 3 files changed, 24 insertions(+), 8 deletions(-) diff --git a/framework/caching/Cache.php b/framework/caching/Cache.php index 70cf8cb..fb56d5e 100644 --- a/framework/caching/Cache.php +++ b/framework/caching/Cache.php @@ -71,6 +71,18 @@ abstract class Cache extends Component implements \ArrayAccess /** + * Initializes the application component. + * This method overrides the parent implementation by setting default cache key prefix. + */ + public function init() + { + parent::init(); + if ($this->keyPrefix === null) { + $this->keyPrefix = \Yii::$app->id; + } + } + + /** * Builds a normalized cache key from a given key. * * The generated key contains letters and digits only, and its length is no more than 32. diff --git a/framework/caching/RedisCache.php b/framework/caching/RedisCache.php index 74432f4..5841d66 100644 --- a/framework/caching/RedisCache.php +++ b/framework/caching/RedisCache.php @@ -20,8 +20,8 @@ use yii\db\redis\Connection; * When the server needs authentication, you can set the [[password]] property to * authenticate with the server after connect. * - * See [[Cache]] for common cache operations that RedisCache supports. - * Different from the description in [[Cache]] RedisCache allows the expire parameter of + * See [[Cache]] manual for common cache operations that RedisCache supports. + * Different from the description in [[Cache]], RedisCache allows the expire parameter of * [[set]] and [[add]] to be a floating point number, so you may specify the time in milliseconds. * * To use RedisCache as the cache application component, configure the application as follows, @@ -39,12 +39,6 @@ use yii\db\redis\Connection; * ) * ~~~ * - * In the above, two memcache servers are used: server1 and server2. You can configure more properties of - * each server, such as `persistent`, `weight`, `timeout`. Please see [[MemCacheServer]] for available options. - * - * @property \Memcache|\Memcached $memCache The memcache instance (or memcached if [[useMemcached]] is true) used by this component. - * @property MemCacheServer[] $servers List of memcache server configurations. - * * @author Carsten Brandt * @since 2.0 */ diff --git a/tests/unit/framework/caching/CacheTest.php b/tests/unit/framework/caching/CacheTest.php index 021a03c..2ce03a1 100644 --- a/tests/unit/framework/caching/CacheTest.php +++ b/tests/unit/framework/caching/CacheTest.php @@ -29,6 +29,16 @@ abstract class CacheTest extends TestCase return $cache; } + /** + * default value of cache prefix is application id + */ + public function testKeyPrefix() + { + $cache = $this->getCacheInstance(); + $this->assertNotNull(\Yii::$app->id); + $this->assertEquals(\Yii::$app->id, $cache->keyPrefix); + } + public function testSet() { $cache = $this->getCacheInstance();