added missing init() method to Cache class

This commit is contained in:
Carsten Brandt
2013-05-01 18:42:38 +02:00
parent 3b4abfffce
commit fad011274c
3 changed files with 24 additions and 8 deletions

View File

@ -70,6 +70,18 @@ abstract class Cache extends Component implements \ArrayAccess
public $serializer; public $serializer;
/**
* 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. * Builds a normalized cache key from a given key.
* *

View File

@ -20,8 +20,8 @@ use yii\db\redis\Connection;
* When the server needs authentication, you can set the [[password]] property to * When the server needs authentication, you can set the [[password]] property to
* authenticate with the server after connect. * authenticate with the server after connect.
* *
* See [[Cache]] for common cache operations that RedisCache supports. * See [[Cache]] manual for common cache operations that RedisCache supports.
* Different from the description in [[Cache]] RedisCache allows the expire parameter of * 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. * [[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, * 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 <mail@cebe.cc> * @author Carsten Brandt <mail@cebe.cc>
* @since 2.0 * @since 2.0
*/ */

View File

@ -29,6 +29,16 @@ abstract class CacheTest extends TestCase
return $cache; 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() public function testSet()
{ {
$cache = $this->getCacheInstance(); $cache = $this->getCacheInstance();