/** * {@inheritdoc} */ public function set(array $keys, $data, $ttl = CacheElement::DAY, array $contextualKeys = array()) { $time = time(); $cacheElement = new CacheElement($keys, $data, $ttl, $contextualKeys); $keys = $cacheElement->getContextualKeys() + $cacheElement->getKeys(); $keys['_value'] = new \MongoBinData(serialize($cacheElement), \MongoBinData::BYTE_ARRAY); $keys['_updated_at'] = $time; $keys['_timeout'] = $time + $cacheElement->getTtl(); $this->getCollection()->save($keys); return $cacheElement; }
public function testContextual() { $cacheKeys = array('block_id' => '1'); $cache = new CacheElement($cacheKeys, 'data', CacheElement::DAY, array('foo' => 'bar')); $this->assertEquals(array('foo' => 'bar'), $cache->getContextualKeys()); }