public function testClear() { $key = 'foo'; $this->cache->register($key, 'bar'); $this->ormCache->save($key, 'bar'); $this->assertNotEmpty($this->cache->getRegisteredKeys($key)); $this->assertTrue($this->cache->has($key)); $this->cache->clear(); $this->assertEmpty($this->cache->getRegisteredKeys($key)); $this->assertFalse($this->cache->has($key)); }
/** * @param Query $query * @param int|null $ttl * @param string|null $key * * @return array */ public function query(Query $query, $ttl = null, $key = null) { if (is_null($key)) { $key = $this->getQueryCacheKey($query); } if ($ttl !== false) { $query->useResultCache(true, $ttl, $key); } $hasKey = $this->cache->has($key); // load via entitymanager $res = $query->getResult(); // remember which queries contain these entities if (!empty($res) && $hasKey === false && $ttl !== false) { $this->cache->registerQueryForEntity($res[0], $key); foreach ($res as $entity) { $this->cache->registerQueryResult($entity, $key); } } return $res; }