diff --git a/docs/de/programmers/caching/caching-cacheable.xml b/docs/de/programmers/caching/caching-cacheable.xml
index fe568117..a7575cee 100644
--- a/docs/de/programmers/caching/caching-cacheable.xml
+++ b/docs/de/programmers/caching/caching-cacheable.xml
@@ -1,23 +1,37 @@
-
-
- Die Ausgabe von cachebaren Plugins Kontrollieren
-
- Seit Smarty-2.6.0 kann bei der Registrierung angegeben werden ob ein Plugin
- cached werden soll. Der dritte Parameter für register_block, register_compiler_function
- und register_function heisst $cacheable, der Standardwert ist TRUE, was in Smarty vor
- Version 2.6.0 üblich war.
-
-
- Wenn ein Plugin mit $cacheable=false registriert wird, wird er bei jedem Besuch der Seite aufgerufen, selbst wenn die Site aus dem Cache stammt. Die Pluginfunktion verhält sich ein wenig wie insert.
-
-
- Im Gegensatz zu {insert} werden die Attribute standartmässig nicht gecached. Sie können das caching jedoch mit dem vierten Parameter $cache_attrs kontrollieren. $cache_attrs ist ein Array aller Attributnamen die gecached wertden sollen.
-
-
- Preventing a plugin's output from being cached
-
+
+
+ Die Ausgabe von cachebaren Plugins Kontrollieren
+
+ Seit Smarty-2.6.0 kann bei der Registrierung angegeben werden ob ein
+ Plugin cached werden soll. Der dritte Parameter für register_block, register_compiler_function
+ und register_function
+ heisst $cacheable, der Standardwert ist TRUE,
+ was das Verhalten von Smarty vor Version 2.6.0 wiederspiegelt.
+
+
+ Wenn ein Plugin mit $cacheable=false
+ registriert wird, wird er bei jedem Besuch der Seite aufgerufen,
+ selbst wenn die Site aus dem Cache stammt. Die Pluginfunktion
+ verhält sich ein wenig wie {insert}.
+
+
+ Im Gegensatz zu {insert} werden die
+ Attribute standartmässig nicht gecached. Sie können das
+ caching jedoch mit dem vierten Parameter
+ $cache_attrs
+ kontrollieren. $cache_attrs ist ein Array
+ aller Attributnamen die gecached werden sollen.
+
+
+
+ Verhindern des Caching der Ausgabe eines Plugins
+
register_function('remaining', 'remaining_seconds', false, array('endtime'));
if (!$smarty->is_cached('index.tpl')) {
- // objekt $obj aus datenbank dem template zuweisen
- $smarty->assign_by_ref('obj', $obj);
+ // Objekt $obj aus Datenbank dem Template zuweisen
+ $smarty->assign_by_ref('obj', $obj);
}
$smarty->display('index.tpl');
?>
]]>
-
-
- where index.tpl is:
-
-
+
+
+ Bei folgendem index.tpl:
+
+
endtime}
+Verbleibende Zeit: {remain endtime=$obj->endtime}
]]>
-
-
- Der Wert von $obj->endtime ändert bei jeder Anzeige der Seite, selbst wenn die Seite gecached wurde. Das Objekt $obj wird nur geladen wenn die Seite nicht gecached wurde.
-
-
-
- Verhindern dass Template Blöcke gecached werden
-
+
+
+ Der Wert von $obj->endtime ändert bei jeder Anzeige der Seite,
+ selbst wenn die Seite gecached wurde. Das Objekt $obj wird nur
+ geladen wenn die Seite nicht gecached wurde.
+
+
+
+ Verhindern dass Template Blöcke gecached werden
+
register_block('dynamic', 'smarty_block_dynamic', false);
$smarty->display('index.tpl');
?>
]]>
-
-
- where index.tpl is:
-
-
+
+
+ Bei folgendem index.tpl:
+
+
-
-
-
-Um sicherzustellen dass ein Teil eines Templates nicht gecached werden soll, kann dieser Abschnitt in einen {dynamic}...{/dynamic} Block verpackt werden.
-
+
+
+
+ Um sicherzustellen dass ein Teil eines Templates nicht gecached
+ werden soll, kann dieser Abschnitt in einen {dynamic}...{/dynamic}
+ Block verpackt werden.
+
-
-
- Cache-Gruppen
-
- Sie können auch eine feinere Gruppierung vornehmen, indem Sie
- 'cache_id'-Gruppen erzeugen. Dies erreichen Sie, indem Sie jede Cache-Untergruppe
- durch ein '|'-Zeichen (pipe) in der 'cache_id' abtrennen. Sie können so viele
- Untergruppen erstellen, wie Sie möchten.
-
-
- 'cache_id'-Gruppen
-
+
+
+ Cache-Gruppen
+
+ Sie können auch eine feinere Gruppierung vornehmen, indem Sie
+ 'cache_id'-Gruppen erzeugen. Dies erreichen Sie, indem Sie jede Cache-Untergruppe
+ durch ein '|'-Zeichen (pipe) in der 'cache_id' abtrennen. Sie können so viele
+ Untergruppen erstellen, wie Sie möchten.
+
+
+
+ Man kann Cache-Gruppen wie eine Verzeichnishierarchie
+ betrachten. Zum Beispiel kann man sich die Cache-Gruppe "a|b|c" als
+ eine Verzeichnisstruktur "/a/b/c" angesehen weden. clear_cache(null,
+ 'a|b|c') würde die Dateien '/a/b/c/*' löschen, clear_cache(null,
+ 'a|b') wäre das Löschen der Dateien '/a/b/*'. Wenn eine Compile-Id
+ angegeben wurde, wie clear_cache(null, 'a|b', 'foo'), dann wird die
+ Compile-Id so behandelt, als sei sie an die Cache-Gruppe angehängt,
+ also wie die Cache-Gruppe '/a/b/foo'. Wenn ein Templatename
+ angegeben wurde, also wie bei clear_cache('foo.tpl', 'a|b|c'), dann
+ wir Smarty auch nur '/a/b/c/foo.tpl' löschen. Es ist NICHT möglich,
+ ein Template unterhalb mehrerer Cache-Gruppen (also
+ '/a/b/*/foo.tpl') zu löschen. Das Gruppieren der Cache-Gruppen
+ funktioniert nur von links nach rechts. Man muss die Templates, die
+ man als eine Gruppe löschen möchte alle unterhalb einer einzigen
+ Gruppenhierarchy anordnen, um sie als eine Gruppe löschen zu können.
+
+
+
+ Cache-Gruppen dürfen nicht mit der Hierarchie des
+ Template-Verzeichnisses verwechselt werden. Die Cache-Gruppen wissen
+ nicht, wie die Templatehierarchie strukturiert ist. Wenn man
+ z. B. eine Templatestruktur wir "themes/blue/index.tpl" hat und man
+ möchte alle Dateien für des "blue"-Theme löschen, dann muss man
+ händisch eine Cache-Gruppe wie display("themes/blue/index.tpl",
+ "themes|blue") und kann diese dann mit
+ clear_cache(null,"themes|blue") löschen.
+
+
+
+ 'cache_id'-Gruppen
+
caching = true;
// leere alle Caches welche 'sports|basketball' als erste zwei 'cache_id'-Gruppen enthalten
-$smarty->clear_cache(null,"sports|basketball");
+$smarty->clear_cache(null, 'sports|basketball');
// leere alle Caches welche 'sports' als erste 'cache_id'-Gruppe haben. Dies schliesst
// 'sports|basketball', oder 'sports|(anything)|(anything)|(anything)|...' ein
-$smarty->clear_cache(null,"sports");
+$smarty->clear_cache(null, 'sports');
-$smarty->display('index.tpl',"sports|basketball");
+$smarty->display('index.tpl', 'sports|basketball');
?>
]]>
-
-
-
- Technische Bemerkung
-
- Cache-Gruppierung benutzt nicht den Pfad zum Template für die 'cache_id'. Wenn Sie
- zum Beispiel display('themes/blue/index.tpl') aufrufen, können Sie NICHT
- den ganzen Cache unter 'themes/blue' leeren. Wenn Sie dies tun möchten,
- müssen Sie die Caches anhand der 'cache_id' gruppieren - zum Beispiel
- display('themes/blue/index.tpl','themes|blue');
- Danach können Sie alle Caches des 'blue-theme' mit clear_cache(null, 'themes|blue');
- leeren.
-
-
+
+
-
-
- Multiple Caches für eine Seite
-
- Sie können für Aufrufe von 'display()' oder 'fetch()' auch mehrere Caches erzeugen.
- Nehmen wir zum Beispiel an, der Aufruf von display('index.tpl') erzeuge für
- verschieden Fälle unterschiedliche Inhalte und Sie wollen jeden dieser Inhalte
- separat cachen. Um dies zu erreichen, können Sie eine 'cache_id' beim Funktionsaufruf
- übergeben.
-
-
- 'display()' eine 'cache_id' übergeben
-
+
+
+ Multiple Caches für eine Seite
+
+ Sie können für Aufrufe von display() oder fetch() auch mehrere Caches erzeugen.
+ Nehmen wir zum Beispiel an, der Aufruf von display('index.tpl')
+ erzeuge für verschieden Fälle unterschiedliche Inhalte und Sie
+ wollen jeden dieser Inhalte separat cachen. Um dies zu erreichen,
+ können Sie eine 'cache_id' beim Funktionsaufruf übergeben.
+
+
+ 'display()' eine 'cache_id' übergeben
+
display('index.tpl',$my_cache_id);
?>
]]>
-
-
-
- Im oberen Beispiel übergeben wir die Variable '$my_cache_id'
- als 'cache_id' an 'display()'. Für jede einmalige 'cache_id'
- wird ein eigener Cache von 'index.tpl' erzeugt. In diesem
- Beispiel wurde 'article_id' per URL übergeben und als 'cache_id' verwendet.
-
-
- Technische Bemerkung
-
- Seien Sie vorsichtig, wenn Sie Smarty (oder jeder anderen PHP-Applikation)
- Werte direkt vom Client (Webbrowser) übergeben. Obwohl das Beispiel oben
- praktisch aussehen mag, kann es schwerwiegende Konsequenzen haben. Die 'cache_id'
- wird verwendet, um im Dateisystem ein Verzeichnis zu erstellen. Wenn ein Benutzer
- also überlange Werte übergibt oder ein Skript benutzt, das in hohem
- Tempo neue 'article_ids' übermittelt, kann dies auf dem Server zu Problemen
- führen. Stellen Sie daher sicher, dass Sie alle empfangenen Werte auf
- ihre Gültigkeit überprüfen und unerlaubte Sequenzen entfernen.
- Sie wissen möglicherweise, dass ihre 'article_id' nur 10 Zeichen lang sein kann, nur
- aus alphanumerischen Zeichen bestehen darf und in der Datenbank eingetragen
- sein muss. überpüfen sie das!
-
-
-
- Denken Sie daran, Aufrufen von is_cached()
- und clear_cache() als zweiten Parameter
- die 'cache_id' zu übergeben.
-
-
- 'is_cached()' mit 'cache_id' aufrufen
-
+
+
+
+ Im oberen Beispiel übergeben wir die Variable
+ $my_cache_id als 'cache_id' an display(). Für jede einmalige
+ cache_id wird ein eigener Cache von 'index.tpl'
+ erzeugt. In diesem Beispiel wurde 'article_id' per URL übergeben und
+ als 'cache_id' verwendet.
+
+
+ Technische Bemerkung
+
+ Seien Sie vorsichtig, wenn Sie Smarty (oder jeder anderen PHP-Applikation)
+ Werte direkt vom Client (Webbrowser) übergeben. Obwohl das Beispiel oben
+ praktisch aussehen mag, kann es schwerwiegende Konsequenzen haben. Die 'cache_id'
+ wird verwendet, um im Dateisystem ein Verzeichnis zu erstellen. Wenn ein Benutzer
+ also überlange Werte übergibt oder ein Skript benutzt, das in hohem
+ Tempo neue 'article_ids' übermittelt, kann dies auf dem Server zu Problemen
+ führen. Stellen Sie daher sicher, dass Sie alle empfangenen Werte auf
+ ihre Gültigkeit überprüfen und unerlaubte Sequenzen entfernen.
+ Sie wissen möglicherweise, dass ihre 'article_id' nur 10 Zeichen lang sein kann, nur
+ aus alphanumerischen Zeichen bestehen darf und in der Datenbank eingetragen
+ sein muss. Überpüfen sie das!
+
+
+
+ Denken Sie daran, Aufrufen von is_cached()
+ und clear_cache() als zweiten Parameter
+ die 'cache_id' zu übergeben.
+
+
+ 'is_cached()' mit 'cache_id' aufrufen
+
caching = true;
$my_cache_id = $_GET['article_id'];
if(!$smarty->is_cached('index.tpl',$my_cache_id)) {
- // kein Cache gefunden, also Variablen zuweisen
+ // kein Cache gefunden, also Variablen zuweisen
$contents = get_database_contents();
$smarty->assign($contents);
}
@@ -75,15 +79,16 @@ if(!$smarty->is_cached('index.tpl',$my_cache_id)) {
$smarty->display('index.tpl',$my_cache_id);
?>
]]>
-
-
-
- Sie können mit 'clear_cache()' den gesamten Cache einer bestimmten 'cache_id'
- auf einmal löschen, wenn Sie als Parameter die 'cache_id' übergeben.
-
-
- Cache einer bestimmten 'cache_id' leeren
-
+
+
+
+ Sie können mit clear_cache()
+ den gesamten Cache einer bestimmten 'cache_id' auf einmal löschen,
+ wenn Sie als Parameter die 'cache_id' übergeben.
+
+
+ Cache einer bestimmten 'cache_id' leeren
+
caching = true;
-// Cache mit 'sports' als 'cache_id' löschen
+// Cache mit 'sports' als 'cache_id' löschen
$smarty->clear_cache(null,"sports");
$smarty->display('index.tpl',"sports");
?>
]]>
-
-
-
- Indem Sie allen dieselbe 'cache_id' übergeben, lassen sich Caches gruppieren.
-
+
+
+
+ Indem Sie allen dieselbe 'cache_id' übergeben, lassen sich Caches gruppieren.
+
-
+
Caching einrichten
Als erstes muss das Caching eingeschaltet werden. Dies erreicht man, indem
- $caching auf 'true' (oder 1) gesetzt wird.
+ $caching = 1 (oder 2) gesetzt wird.
Caching einschalten
@@ -26,24 +26,29 @@ $smarty->display('index.tpl');
Wenn Caching eingeschaltet ist, wird der Funktionsaufruf display('index.tpl')
das Template normal rendern, zur selben Zeit jedoch auch eine Datei mit
dem Inhalt in das $cache_dir schreiben
- (als gecachte Kopie). Beim nächsten Aufruf von display('index.tpl') wird die
+ (als gecachte Kopie). Beim nächsten Aufruf von display('index.tpl') wird die
gecachte Kopie verwendet.
Technische Bemerkung
- Die im '$cache_dir' abgelegen Dateien haben einen ähnlichen Namen
- wie das Template, mit dem sie erzeugt wurden. Obwohl sie eine '.php'-Endung
- aufweisen, sind sie keine ausführbaren PHP-Skripte.
+ Die im $cache_dir
+ abgelegen Dateien haben einen ähnlichen Namen wie das Template,
+ mit dem sie erzeugt wurden. Obwohl sie eine '.php'-Endung
+ aufweisen, sind sie keine ausführbaren PHP-Skripte.
Editieren Sie diese Dateien NICHT!
- Jede gecachte Seite hat eine Lebensdauer, die von $cache_lifetime
- bestimmt wird. Normalerweise beträgt der Wert 3600 Sekunden (= 1 Stunde). Nach Ablauf dieser Lebensdauer
- wird der Cache neu generiert. Sie können die Lebensdauer pro Cache bestimmen indem Sie '$caching'
- auf 2 setzen. Konsultieren Sie den Abschnitt über $cache_lifetime
- für weitere Informationen.
+ Jede gecachte Seite hat eine Lebensdauer, die von $cache_lifetime bestimmt
+ wird. Normalerweise beträgt der Wert 3600 Sekunden (= 1
+ Stunde). Nach Ablauf dieser Lebensdauer wird der Cache neu
+ generiert. Sie können die Lebensdauer pro Cache bestimmen indem
+ Sie $caching auf 2
+ setzen. Konsultieren Sie den Abschnitt über $cache_lifetime für
+ weitere Informationen.
'$cache_lifetime' pro Cache einstellen
@@ -55,16 +60,16 @@ $smarty = new Smarty;
$smarty->caching = 2; // Lebensdauer ist pro Cache
-// Standardwert für '$cache_lifetime' auf 5 Minuten setzen
+// Standardwert für '$cache_lifetime' auf 5 Minuten setzen
$smarty->cache_lifetime = 300;
$smarty->display('index.tpl');
-// '$cache_lifetime' für 'home.tpl' auf 1 Stunde setzen
+// '$cache_lifetime' für 'home.tpl' auf 1 Stunde setzen
$smarty->cache_lifetime = 3600;
$smarty->display('home.tpl');
// ACHTUNG: die folgende Zuweisung an '$cache_lifetime' wird nicht funktionieren,
-// wenn '$caching' auf 2 gestellt ist. Wenn die '$cache_lifetime' für 'home.tpl' bereits
+// wenn '$caching' auf 2 gestellt ist. Wenn die '$cache_lifetime' für 'home.tpl' bereits
// auf 1 Stunde gesetzt wurde, werden neue Werte ignoriert.
// 'home.tpl' wird nach dieser Zuweisung immer noch eine '$cache_lifetime' von 1 Stunde haben
$smarty->cache_lifetime = 30; // 30 seconds
@@ -74,13 +79,15 @@ $smarty->display('home.tpl');
- Wenn $compile_check eingeschaltet ist,
- werden alle in den Cache eingeflossenen Templates und Konfigurationsdateien
- hinsichtlich ihrer letzten änderung überprüft.
- Falls eine der Dateien seit der Erzeugung des Cache geändert wurde,
- wird der Cache unverzüglich neu generiert. Dadurch ergibt sich ein
- geringer Mehraufwand. Für optimale Performace sollte '$compile_check'
- deshalb auf 'false' gesetzt werden.
+ Wenn $compile_check
+ eingeschaltet ist, werden alle in den Cache eingeflossenen
+ Templates und Konfigurationsdateien hinsichtlich ihrer letzten
+ Änderung überprüft. Falls eine der Dateien seit der Erzeugung des
+ Cache geändert wurde, wird der Cache unverzüglich neu
+ generiert. Dadurch ergibt sich ein geringer Mehraufwand. Für
+ optimale Performance sollte $compile_check deshalb auf
+ 'false' gesetzt werden.
'$compile_check' einschalten
@@ -101,15 +108,15 @@ $smarty->display('index.tpl');
Wenn $force_compile eingeschaltet ist,
werden die Cache-Dateien immer neu generiert und das Caching damit wirkungslos gemacht.
- '$force_compile' wird normalerweise nur für die Fehlersuche verwendet.
- Ein effizienterer Weg das Caching auszuschalten wäre,
+ $force_compile wird normalerweise nur für die Fehlersuche verwendet.
+ Ein effizienterer Weg das Caching auszuschalten wäre,
$caching auf 'false' (oder 0) zu setzen.
- Mit der Funktion is_cached() kann überprüft
+ Mit der Funktion is_cached() kann überprüft
werden, ob von einem Template eine gecachte Version vorliegt.
In einem Template, das zum Beispiel Daten aus einer Datenbank bezieht,
- können Sie diese Funktion verwenden, um den Prozess zu überspringen.
+ können Sie diese Funktion verwenden, um den Prozess zu überspringen.
is_cached() verwenden
@@ -122,7 +129,7 @@ $smarty = new Smarty;
$smarty->caching = true;
if(!$smarty->is_cached('index.tpl')) {
- // kein Cache gefunden, also Variablen zuweisen
+ // kein Cache gefunden, also Variablen zuweisen
$contents = get_database_contents();
$smarty->assign($contents);
}
@@ -133,16 +140,16 @@ $smarty->display('index.tpl');
- Mit der insert Funktion können Sie
+ Mit der {insert} Funktion können Sie
Teile einer Seite dynamisch halten. Wenn zum Beispiel ein Banner in einer gecachten Seite
- nicht gecached werden soll, kann dessen Aufruf mit 'insert' dynamisch gehalten werden.
- Konsultieren Sie den Abschnitt über insert
- für weitere Informationen und Beispiele.
+ nicht gecached werden soll, kann dessen Aufruf mit {insert} dynamisch gehalten werden.
+ Konsultieren Sie den Abschnitt über insert
+ für weitere Informationen und Beispiele.
- Mit der Funktion clear_all_cache() können
- Sie den gesamten Template-Cache löschen. Mit clear_cache()
- einzelne Templates oder Template-Gruppen.
+ Mit der Funktion clear_all_cache() können
+ Sie den gesamten Template-Cache löschen. Mit clear_cache()
+ einzelne Templates oder Cache-Gruppen.
Cache leeren
@@ -154,10 +161,10 @@ $smarty = new Smarty;
$smarty->caching = true;
-// alle Cache-Dateien löschen
+// alle Cache-Dateien löschen
$smarty->clear_all_cache();
-// nur Cache von 'index.tpl' löschen
+// nur Cache von 'index.tpl' löschen
$smarty->clear_cache('index.tpl');
$smarty->display('index.tpl');