Het cachen van pagina’s in PHP kan de prestaties van een website aanzienlijk verbeteren doordat het de belasting van de server vermindert en de laadtijd van pagina’s verkort. Door gebruik te maken van caching, kunnen we dynamisch gegenereerde pagina’s opslaan zodat ze niet telkens opnieuw hoeven te worden gegenereerd bij elke aanvraag. Hier zijn enkele methoden om pagina’s in PHP te cachen, met voorbeelden en bronnen.
Een van de eenvoudigste manieren om een PHP-pagina te cachen is door het gebruik van bestandscaching. Hierbij sla je de uitvoer van een PHP-script op in een bestand en dien je dit bestand vervolgens op bij toekomstige verzoeken.
Voorbeeld:
```
$cacheFile = ‘cache/homepage_cache.html’;
$cacheTime = 60 * 5; // 5 minuten
// Check if the cached file is still valid
if (file_exists($cacheFile) && (time() – filemtime($cacheFile) < $cacheTime)) {
// Serve the cached file
readfile($cacheFile);
exit;
}
// Start output buffering
ob_start();
// Dynamically generate your content
?>
Deze inhoud is dynamisch gegenereerd op:
// Save the content to a cache file
file_put_contents($cacheFile, $html);
// Output the content
ob_end_flush();
?>
```
In dit voorbeeld wordt de gegenereerde HTML-uitvoer bewaard in een cachebestand (`homepage_cache.html`). Bij volgende verzoeken binnen de cache-tijd (hier 5 minuten) wordt deze bestand direct geserveerd zonder het PHP-script opnieuw uit te voeren.
APCu (Alternative PHP Cache) is een geheugen-gebaseerde caching methode die handig kan zijn voor het cachen van eenvoudige data en volledige pagina’s in het RAM-geheugen, waardoor de snelheid flink toeneemt.
Voorbeeld:
```
$key = ‘homepage_cache’;
$cacheTime = 60 * 5; // 5 minuten
// Check if the cache exists and is still valid
if (apcu_exists($key)) {
echo apcu_fetch($key);
exit;
}
// Start output buffering
ob_start();
// Dynamically generate your content
?>
Deze inhoud is dynamisch gegenereerd op:
// Save the content to APCu cache
apcu_store($key, $html, $cacheTime);
// Output the content
ob_end_flush();
?>
```
Met dit voorbeeld wordt de gegenereerde inhoud opgeslagen in de APCu-cache met een unieke sleutel. Bij ANSVS volgende aanvragen wordt de gecachte inhoud rechtstreeks uit het geheugen geserveerd.
- PHP Manual: [Output Control Functions](https://www.php.net/manual/en/ref.outcontrol.php) – voor ob\_start() en gerelateerde methodes.
- PHP Manual: [file_put_contents()](https://www.php.net/manual/en/function.file-put-contents.php) – voor bestandscaching.
- PHP Manual: [APCu](https://www.php.net/manual/en/book.apcu.php) – voor in-memory caching met APCu.
Door deze methoden toe te passen, kun je de laadtijd van je website versnellen, wat kan leiden tot een betere gebruikerservaring en lagere serverkosten.