Das in Larvel[1] (Sehr beliebtes PHP-Framework) eingebaute Cache-System ist sehr mächtig.Durch das Verwenden von so genannten „Facades“ ist es möglich im Hintergrund einfach die fundamentale Konfiguration des Caches zu verändern. Ohne dabei den bestehenden Code verändern zu müssen. So kann zum Beispiel vom Datei-basiertem Caching auf Datenbank, Redis oder Memcached in ein paar Sekunden umzustellen. Und wie gesagt, die Programmierung muss nicht verändert werden. Hier können Sie genauer über die Funktion von Facades nachlesen: https://laravel.com/docs/6.x/facades.
Zu einer Standard Caching-Situation gehört normalerweise eine „if else“ Abfrage. Wenn diese Information bereits im Speicher vorliegt, dann abrufen, falls nicht, dann die Operation ausführen und im Speicher ablegen. Hier ist ein konkretes Beispiel einer Integration in einem Laravel Controller:
// check if object is in cache
if (Cache::has($cachename)) {
$channel = Cache::get($cachename);
// echo 'cache working';
} else {
// Get channel data by channel ID, return an STD PHP object
$channel = Youtube::getChannelById($this->channelid);
// Write to cache
Cache::put($cachename, $channel, 3600); // seconds
// echo 'written to cache';
}
Durch die aukommentierte „echo“ Funktionen, kann man einen sehr einfachen Funktionstest durchführen. Die Ausgaben bestätigen den aktuellen Verlauf der Schleife:
- Ist der Eintrag zum Wert im Cache vorhanden?
- Wenn ja, abrufen
- Wenn kein Wert vorhanden ist
- Funktion ausführen. In diesem Fall den Channel über Youtube API abrufen
- Den abgerufenen Wert im Cache ablegen
Viel Spaß damit und falls Ihr Laravel noch nicht ausprobiert habt, auf jeden Fall nachholen! Das Einarbeiten lohnt sich langfristig ungemein.
Quellenangaben
[1] Laravel Webseite, abgerufen am 31.10.2019, https://laravel.com/
Buch-Tipp: „Laravel von Grund auf verstehen und professionell einsetzen“
von Matt Stauffer, einem führenden Entwickler der Laravel-Community. Fundiertes Laravel-Know-how: von den Konzepten bis zu konkreten Code-Beispielen