本文整理汇总了PHP中Zend\Cache\Storage\StorageInterface::setItems方法的典型用法代码示例。如果您正苦于以下问题:PHP StorageInterface::setItems方法的具体用法?PHP StorageInterface::setItems怎么用?PHP StorageInterface::setItems使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Zend\Cache\Storage\StorageInterface
的用法示例。
在下文中一共展示了StorageInterface::setItems方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: setItems
/**
* Set array of items
* If items already exists, they are replaced
*
* @access public
* @param array $items
*/
public function setItems($items)
{
$existingItemsKeys = array_flip($this->cacheAdapter->hasItems(array_keys($items)));
$existingItems = array_intersect_key($items, $existingItemsKeys);
$nonExistingItems = array_diff_key($items, $existingItemsKeys);
if (count($existingItems) > 0) {
$this->cacheAdapter->replaceItems($existingItems);
}
if (count($nonExistingItems) > 0) {
$this->cacheAdapter->setItems($nonExistingItems);
}
}
示例2: testTagable
public function testTagable()
{
if (!$this->_storage instanceof TaggableInterface) {
$this->markTestSkipped("Storage doesn't implement TaggableInterface");
}
$this->assertSame(array(), $this->_storage->setItems(array('key1' => 'value1', 'key2' => 'value2', 'key3' => 'value3')));
$this->assertTrue($this->_storage->setTags('key1', array('tag1a', 'tag1b')));
$this->assertTrue($this->_storage->setTags('key2', array('tag2a', 'tag2b')));
$this->assertTrue($this->_storage->setTags('key3', array('tag3a', 'tag3b')));
$this->assertFalse($this->_storage->setTags('missing', array('tag')));
// return tags
$tags = $this->_storage->getTags('key1');
$this->assertInternalType('array', $tags);
sort($tags);
$this->assertSame(array('tag1a', 'tag1b'), $tags);
// this should remove nothing
$this->assertTrue($this->_storage->clearByTags(array('tag1a', 'tag2a')));
$this->assertTrue($this->_storage->hasItem('key1'));
$this->assertTrue($this->_storage->hasItem('key2'));
$this->assertTrue($this->_storage->hasItem('key3'));
// this should remove key1 and key2
$this->assertTrue($this->_storage->clearByTags(array('tag1a', 'tag2b'), true));
$this->assertFalse($this->_storage->hasItem('key1'));
$this->assertFalse($this->_storage->hasItem('key2'));
$this->assertTrue($this->_storage->hasItem('key3'));
// this should remove key3
$this->assertTrue($this->_storage->clearByTags(array('tag3a', 'tag3b'), true));
$this->assertFalse($this->_storage->hasItem('key1'));
$this->assertFalse($this->_storage->hasItem('key2'));
$this->assertFalse($this->_storage->hasItem('key3'));
}
示例3: delegatesSetItems
/**
* @test
*/
public function delegatesSetItems()
{
$keyValuePairs = [];
$this->storage->setItems($keyValuePairs)->willReturn(true);
$return = $this->cache->setItems($keyValuePairs);
$this->assertTrue($return);
}
示例4: testTaggable
public function testTaggable()
{
if (!$this->_storage instanceof TaggableInterface) {
$this->markTestSkipped("Storage doesn't implement TaggableInterface");
}
// store 3 items and register the current default namespace
$this->assertSame([], $this->_storage->setItems(['key1' => 'value1', 'key2' => 'value2', 'key3' => 'value3']));
$this->assertTrue($this->_storage->setTags('key1', ['tag1a', 'tag1b']));
$this->assertTrue($this->_storage->setTags('key2', ['tag2a', 'tag2b']));
$this->assertTrue($this->_storage->setTags('key3', ['tag3a', 'tag3b']));
$this->assertFalse($this->_storage->setTags('missing', ['tag']));
// return tags
$tags = $this->_storage->getTags('key1');
$this->assertInternalType('array', $tags);
sort($tags);
$this->assertSame(['tag1a', 'tag1b'], $tags);
// this should remove nothing
$this->assertTrue($this->_storage->clearByTags(['tag1a', 'tag2a']));
$this->assertTrue($this->_storage->hasItem('key1'));
$this->assertTrue($this->_storage->hasItem('key2'));
$this->assertTrue($this->_storage->hasItem('key3'));
// this should remove key1 and key2
$this->assertTrue($this->_storage->clearByTags(['tag1a', 'tag2b'], true));
$this->assertFalse($this->_storage->hasItem('key1'));
$this->assertFalse($this->_storage->hasItem('key2'));
$this->assertTrue($this->_storage->hasItem('key3'));
// this should remove key3
$this->assertTrue($this->_storage->clearByTags(['tag3a', 'tag3b'], true));
$this->assertFalse($this->_storage->hasItem('key1'));
$this->assertFalse($this->_storage->hasItem('key2'));
$this->assertFalse($this->_storage->hasItem('key3'));
}
示例5: testSetItemAndSetItemsCallSaveWithTtl
public function testSetItemAndSetItemsCallSaveWithTtl()
{
$ttl = rand();
$provider = $this->getMock('Doctrine\\Common\\Cache\\ArrayCache');
$provider->expects($this->exactly(4))->method('save')->with($this->anything(), $this->anything(), $ttl);
$this->storage = new DoctrineCacheStorage($this->options, $provider);
$this->options->setTtl($ttl);
$this->storage->setItem('key', 'value');
$items = array('key1' => 'value1', 'key2' => 'value2', 'key3' => 'value3');
$this->storage->setItems($items);
}
示例6: testSetGetHasAndRemoveItemsWithNamespace
public function testSetGetHasAndRemoveItemsWithNamespace()
{
$items = array('key1' => 'value1', 'key2' => 'value2', 'key3' => 'value3');
$this->_options->setNamespace('defaultns1');
$this->assertSame(array(), $this->_storage->setItems($items));
$this->_options->setNamespace('defaultns2');
$this->assertSame(array(), $this->_storage->hasItems(array_keys($items)));
$this->_options->setNamespace('defaultns1');
$rs = $this->_storage->getItems(array_keys($items));
$this->assertInternalType('array', $rs);
foreach ($items as $key => $value) {
$this->assertArrayHasKey($key, $rs);
$this->assertEquals($value, $rs[$key]);
}
$rs = $this->_storage->hasItems(array_keys($items));
$this->assertInternalType('array', $rs);
$this->assertEquals(count($items), count($rs));
foreach ($items as $key => $value) {
$this->assertContains($key, $rs);
}
// remove the first and the last item
$this->assertSame(array('missing'), $this->_storage->removeItems(array('missing', 'key1', 'key3')));
unset($items['key1'], $items['key3']);
$rs = $this->_storage->getItems(array_keys($items));
$this->assertInternalType('array', $rs);
foreach ($items as $key => $value) {
$this->assertArrayHasKey($key, $rs);
$this->assertEquals($value, $rs[$key]);
}
$rs = $this->_storage->hasItems(array_keys($items));
$this->assertInternalType('array', $rs);
$this->assertEquals(count($items), count($rs));
foreach ($items as $key => $value) {
$this->assertContains($key, $rs);
}
}
示例7: setItems
public function setItems(array $keyValuePairs)
{
return $this->storage->setItems($keyValuePairs);
}