Commit 5fc51f1a by Alexander Makarov

Merge pull request #1094 from pmoust/cache-mset

[WIP] Caching: mset() method to store multiple items.
parents ad6411ca 6e538ac6
...@@ -216,6 +216,21 @@ abstract class Cache extends Component implements \ArrayAccess ...@@ -216,6 +216,21 @@ abstract class Cache extends Component implements \ArrayAccess
} }
/** /**
* Stores multiple items in cache. Each item contains a value identified by a key.
* If the cache already contains such a key, the existing value and
* expiration time will be replaced with the new ones, respectively.
*
* @param array $items the items to be cached, as key-value pairs. Each key can be a simple string or
* a complex data structure consisting of factors representing the key.
* @param integer $expire the number of seconds in which the cached value will expire. 0 means never expire.
* @return boolean whether the items are successfully stored into cache
*/
public function mset($items, $expire = 0)
{
return false;
}
/**
* Stores a value identified by a key into cache if the cache does not contain this key. * Stores a value identified by a key into cache if the cache does not contain this key.
* Nothing will be done if the cache already contains the key. * Nothing will be done if the cache already contains the key.
* @param mixed $key a key identifying the value to be cached. This can be a simple string or * @param mixed $key a key identifying the value to be cached. This can be a simple string or
......
...@@ -91,6 +91,27 @@ abstract class CacheTestCase extends TestCase ...@@ -91,6 +91,27 @@ abstract class CacheTestCase extends TestCase
$this->assertEquals('array_test', $array['array_test']); $this->assertEquals('array_test', $array['array_test']);
} }
public function testMset()
{
$this->markTestIncomplete('Work in progress');
$cache = $this->getCacheInstance();
$cache->flush();
$this->assertTrue($cache->mset(['string_test' => 'string_test',
'number_test' => 42,
'array_test' => ['array_test' => 'array_test'],
]));
$this->assertEquals('string_test', $cache->get('string_test'));
$this->assertEquals(42, $cache->get('number_test'));
$array = $cache->get('array_test');
$this->assertArrayHasKey('array_test', $array);
$this->assertEquals('array_test', $array['array_test']);
}
public function testExists() public function testExists()
{ {
$cache = $this->prepare(); $cache = $this->prepare();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment