Smarty – Caching Tutorial

Bei einem aktuellen Projekt bei dem wir Smarty als Template Engine verwenden haben wir jetzt ein umfangreiches Caching implementiert um somit statische/teilstatische Seiten soweit wie möglich direkt aus dem Cache zu laden.

Smarty bietet dabei zahlreiche Möglichen um z.B. verschiedene Caches für die gleiche Seite oder die Angabe verschiedener Cache-Lebenszeiten anzugeben. Ein kleiner Überblick der Möglichkeiten:Das Caching aktiviert man mit folgenden Codezeilen:

<?PHP
require(“Smarty.class.php”);
$smarty = new Smarty;
$smarty->caching = true;
$smarty->display(“index.tpl”);
?>

Verwendet man nun in einem Script mehrere Templates und führt somit fetch/display mehrmals aus kann man für jedes Template eine eigene Cache-Lifetime (Zeit bis der Cache neu erzeugt wird) angeben:

// Caching auf 2 setzen um verschiedene Lifetimes zu ermöglichen
$smarty->caching = 2;

// Lifetime auf 5 Minuten setzen
$smarty->cache_lifetime = 300;
$smarty->display(“index1.tpl”);

// Zweites Template auf 1 Stunde setzen
$smarty->cache_lifetime = 3600;
$smarty->display(“index2.tpl”);

Oft erzeugt man mit einem Script verschiedene Inhalte (z.B. bei einem Branchenbuch) – daher kann man mit Smarty auch Multiple Caches anlegen für die jeweiligen Inhalte

$smarty->display(“index.tpl”, $akt_cache_id);

Dazu übergibt man als 2. Argument eine sog. CacheID. Diese kann z.B. eine Beschreibung aber auch den jeweiligen Primärschlüssel enthalten. Diese verschiedenen Caches kann man nun auch gruppieren um später z.B. Löschungen besser implementieren zu können:

$smarty->display(“index.tpl”, “sport|fussball”);

Die Pipe | dient dazu als Trenner zwischen den verschiedenen Gruppen. Will man nun alle Caches der Gruppe “Sport” löschen führt man folgende Codezeile aus:

clear_cache(null, “sport”);

Da das Caching in Smarty ein sehr umfangreiches Thema ist kann ich jedem Interessierten nur wärmsten die offizielle Dokumentation ans Herz legen. Download unter http://smarty.php.net

Über admin

Herzlich Willkommen in meinem Blog. Hier will ich über meine Erfahrungen mit PHP & MySQL berichten und hilfreiche Tips bei der Programmierung geben. Viel Spaß! :)
Dieser Beitrag wurde unter PHP, Schnipsel abgelegt und mit , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Eine Antwort auf Smarty – Caching Tutorial

  1. Andreas sagt:

    Am besten für die Lesbarkeit ist es natürlich in erster Linie unterschiedliche Template (z. B. index.tpl, kategorie.tpl usw.) zu verwenden.
    Noch ein Tipp:
    Möchte man in gecachten Templates trotzdem dynamische Teile einbinden, die nie gecacht werden, so kann man den insert() Befehl vom smarty dafür verwenden.

    Viele Grüße
    Andreas

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>