From 7a6acedbc008ab23808129c68f806683d332fd6d Mon Sep 17 00:00:00 2001 From: messju Date: Sat, 10 Dec 2005 09:27:40 +0000 Subject: [PATCH] sync with en --- .../programmers/caching/caching-cacheable.xml | 112 ++++++++------- .../de/programmers/caching/caching-groups.xml | 76 +++++++---- .../caching/caching-multiple-caches.xml | 127 +++++++++--------- .../caching/caching-setting-up.xml | 77 ++++++----- 4 files changed, 220 insertions(+), 172 deletions(-) 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');