Je suis récemment tombé sur un problème. J'ai plusieurs partiel qui sont dans plusieurs actions et ont une autre façon d'afficher les données, donc j'ai utilisé l'option contextuelle dans cache.yml en tant que tel:Suppression du cache d'une partie contextuelle dans Symfony 1.4
_list:
enabled: true
contextual: true
Maintenant, je devais retirer le cache partiel lorsque les données ont été mis à jour , ce qui est normalement assez facile lorsqu'il s'agit d'un cache partiel non contextuel ou d'un cache d'actions.
Toutefois, lorsque j'essaie de supprimer ce cache, j'obtiens uniquement des valeurs de retour nulles et le cache n'est pas supprimé. Comme ceci:
$uri = '@sf_cache_partial?module=comment&action=_list&sf_cache_key='.$id;
$cache_manager = $this->getContext()->getViewCacheManager();
$cache_manager->has($uri) // return true
$cache_manager->remove($uri) // return null
$cache_manager->has($uri) // return true, cache is still there
J'ai essayé de jouer avec la quatrième option de sfViewCacheManager :: remove, qui est le contexte, en tant que tel:
$context = 'space/show/sf_culture/fr/slug/'.$slug.'/tab/news/comment/_list/'.$id;
$cache_manager->remove($uri, '', '', $context); // return null
Quelqu'un sait comment faire cela? Je suis désespéré: P
Merci.
Je ne connais pas la réponse à votre question, mais je pense que vous pourriez découvrir ce qui ne va pas avec la fonction remove() en effectuant un débogage pas à pas, par exemple avec XDebug. Bonne chance! – greg0ire