API de Caché
La API de Caché ha sido significativamente mejorada en Drupal 8. En las siguientes secciones se examina cada función con más detalle.
Para una visión rápida, vea también la página API de Caché en la documentación de la API.
Metadatos de cacheabilidad
Todos los elementos que se renderizan directamente o se usan para determinar qué mostrar proporcionan metadatos para el cacheo — desde resultados de acceso hasta entidades y URLs.
Los metadatos para cacheo consisten en 3 propiedades:
- etiquetas de caché
Para dependencias de datos gestionados por Drupal, como entidades y configuración.
- contextos de caché
Para variantes, es decir, dependencias del contexto de la solicitud.
- máximo tiempo de vida de la caché (max-age)
Para el cacheo sensible al tiempo, es decir, dependencias temporales.
Práctico: cómo normalmente usarás la API de Caché
Generalmente, tu código terminará renderizando objetos (bloques, entidades, etc.), y tus controladores retornarán arrays de renderizado o respuestas. Por lo tanto, usualmente no interactuarás directamente con la API de Caché. En cambio, usarás:
Cacheo de renderizado (también conocido como cacheo de fragmentos)
La API de renderizado usa metadatos para cacheo embebidos en arrays de renderizado para realizar cacheo (o renderizado). Por eso, no se debe usar la API de Caché para interactuar con el cacheo de renderizado (ni para obtener elementos cacheados ni para crear nuevos).
Ver Cacheabilidad de arrays de renderizado.
Cacheo de respuestas
Los metadatos para cacheo usados por la API de renderizado (ver sección anterior) se propagan hasta objetos Response (usualmente HtmlResponse) que implementan CacheableResponseInterface.
Los metadatos para cacheo en estos objetos Response permiten que Drupal 8 incluya por defecto Page Cache y Dynamic Page Cache, ya que les permite funcionar de forma transparente: siempre están actualizados y cambian apropiadamente.
Ver CacheableResponseInterface.