Cache-API
De Cache-API is aanzienlijk verbeterd in Drupal 8. In de volgende secties wordt elke functie in meer detail besproken.
Voor een korte kennismaking, zie ook de pagina Cache-API in de API-documentatie.
Cacheability-metagegevens
Alle dingen die ofwel direct gerenderd worden, of gebruikt worden om te bepalen wat er weergegeven moet worden, leveren cache-metagegevens — van toegangsresultaten tot entiteiten en URL’s.
Metagegevens voor caching bestaan uit 3 eigenschappen:
- cache-tags
Voor afhankelijkheden van door Drupal beheerde gegevens, zoals entiteiten en configuratie
- cache-contexten
Voor varianten, d.w.z. afhankelijkheden van de context van het verzoek
- cache max-age
Voor tijdsgevoelige caching, d.w.z. tijdsafhankelijkheden
Praktisch: hoe je de Cache-API meestal zult gebruiken
In de regel eindigt je code met het renderen van objecten (blokken, entiteiten, enz.), en je controllers retourneren render-arrays of responses. Daarom zul je meestal niet rechtstreeks interageren met de Cache-API. In plaats daarvan gebruik je:
Render-caching (ook bekend als fragment caching)
De render-API gebruikt cache-metagegevens, ingebouwd in render-arrays, om caching (of rendering) uit te voeren. Daarom moet de Cache-API niet gebruikt worden om met de render-cache te werken (noch om cache-items op te halen, noch om nieuwe te creëren).
Zie Cacheability van render-arrays.
Response-caching
Cache-metagegevens die gebruikt worden door de render-API (zie de vorige sectie) bubbelen helemaal door naar Response-objecten (meestal HtmlResponse), die CacheableResponseInterface implementeren.
Cache-metagegevens in deze Response-objecten maken het mogelijk dat Drupal 8 standaard geleverd wordt met Page Cache en Dynamic Page Cache ingeschakeld, omdat dit hen in staat stelt transparant te werken: ze zijn altijd actueel en veranderen altijd op de juiste manier.
Zie CacheableResponseInterface.