2013-10-17 3 views
3

J'ai décidé d'utiliser LswMemcacheBundle (dans Symfony2) pour mettre en cache les requêtes Doctrine2 dans memcached, mais j'ai un problème. Je ne trouve aucune information sur la possibilité de changer la durée de vie du cache, même sur la durée de vie par défaut.Durée de vie du cache dans LswMemcacheBundle

Y a-t-il quelqu'un qui peut me fournir de telles informations?

Répondre

2

Il ressemble à cache des résultats n'est pas activé pour toutes les requêtes (mais cache de requêtes est activée) et nous avons besoin de l'activer en utilisant la méthode useResultCache. Cette méthode nous permet également de définir la durée de vie du cache.

Donc ça va ressembler cette

$em->createQuery('SELECT a FROM SomeBundle:Entity a') 
     ->useResultCache(true, 3600, 'cacheId') 
     ->getResult(); 

et createQueryBuilder

$repository = $this->getEntityManager()->getRepository('SomeBundle:Entity'); 
$qb = $repository->createQueryBuilder('g'); 
$qb->andWhere('g.categoryId = :categoryId')->setParameter('categoryId', '1'); 
$qb->addOrderBy('g.id', 'DESC'); 

$query = $qb->getQuery(); 
$query->useResultCache(true, 3600, 'cacheId'); 

3600 sera la durée de vie cache en quelques secondes et cacheId notre clé de cache.