/** * return query in cache * * @param Query $query * @param integer $time * @param string $MODE [MODE_GET, MODE_PUT , MODE_NORMAL , MODE_REFRESH] * @param boolean $setCacheable * @param string $namespace * @param string $input_hash * * @return Query * @access public * @author Etienne de Longeaux <*****@*****.**> */ public function cacheQuery(Query $query, $time = 3600, $MODE = 3, $setCacheable = true, $namespace = '', $input_hash = '') { if (!$query) { throw new \Gedmo\Exception\InvalidArgumentException('Invalide query instance'); } // create single file from all input if (empty($input_hash)) { $input_hash = $namespace . sha1(serialize($query->getParameters()) . $query->getSQL()); } $query->useResultCache(true, $time, (string) $input_hash); $query->useQueryCache(true); if (method_exists($query, 'setCacheMode')) { $query->setCacheMode($MODE); } if (method_exists($query, 'setCacheable')) { $query->setCacheable($setCacheable); } return $query; }
public function getOneResult(\Doctrine\ORM\Query $query, $cacheId = null, $useCache = false) { $query->useResultCache($useCache, $this->cacheDuration, $cacheId); return $query->getOneOrNullResult(); }
/** * Set the query options * * @param \Doctrine\ORM\Query $query * @param array $options */ protected function setQueryOptions(Query $query, array $options = null) { if (!$options) { return; } if (isset($options['result_cache'])) { if (is_array($options['result_cache'])) { foreach ($options['result_cache'] as $key => $value) { switch ($key) { case 'enabled': $query->useResultCache($value); break; case 'lifetime': $query->setResultCacheLifetime($value); break; case 'id': $query->setResultCacheId($value); break; } } } } }