Cache API
L’API Cache a été grandement améliorée dans Drupal 8. Les sections suivantes détaillent chaque fonctionnalité.
Pour un aperçu rapide, voir également la page API Cache dans la documentation API.
Métadonnées de cacheabilité
Toutes les entités qui sont directement rendues ou utilisées pour déterminer ce qui doit être affiché fournissent des métadonnées de cache — depuis les résultats d’accès jusqu’aux entités et aux URLs.
Les métadonnées de cache sont composées de 3 propriétés :
- tags de cache
Pour les dépendances aux données gérées par Drupal, telles que les entités et la configuration.
- contextes de cache
Pour les variations, c’est-à-dire la dépendance au contexte de la requête.
- durée maximale du cache
Pour les caches sensibles au temps, c’est-à-dire les dépendances temporelles.
Pratique : comment vous utiliserez habituellement l’API Cache
Généralement, votre code finit par rendre des objets (blocs, entités, etc.), et vos contrôleurs retournent des tableaux de rendu ou des réponses. Par conséquent, vous n’interagirez généralement pas directement avec l’API Cache. Vous utiliserez plutôt :
Cache de rendu (aussi appelé cache de fragments)
L’API de rendu utilise des métadonnées de cache intégrées dans les tableaux de rendu pour gérer le cache (ou le rendu). Ainsi, l’API Cache ne doit pas être utilisée directement pour interagir avec le cache de rendu (ni pour récupérer ni pour créer des éléments de cache).
Voir Cacheabilité des tableaux de rendu.
Cache des réponses
Les métadonnées de cache utilisées par l’API de rendu (voir la section précédente) remontent jusqu’aux objets Response (généralement HtmlResponse) qui implémentent CacheableResponseInterface.
Ces métadonnées de cache dans les objets Response permettent à Drupal 8 d’avoir activés par défaut les modules Page Cache et Dynamic Page Cache, car ils fonctionnent ainsi de façon transparente : ils sont toujours à jour et se modifient en conséquence.
Voir CacheableResponseInterface.