sync with en

This commit is contained in:
messju
2005-12-10 09:27:40 +00:00
parent 978d902625
commit 7a6acedbc0
4 changed files with 220 additions and 172 deletions

View File

@@ -1,23 +1,37 @@
<?xml version="1.0" encoding="iso-8859-1"?> <?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ --> <!-- $Revision$ -->
<!-- EN-Revision: 1.5 Maintainer: andreas Status: ready --> <!-- EN-Revision: 1.8 Maintainer: andreas Status: ready -->
<sect1 id="caching.cacheable"> <sect1 id="caching.cacheable">
<title>Die Ausgabe von cachebaren Plugins Kontrollieren</title> <title>Die Ausgabe von cachebaren Plugins Kontrollieren</title>
<para> <para>
Seit Smarty-2.6.0 kann bei der Registrierung angegeben werden ob ein Plugin Seit Smarty-2.6.0 kann bei der Registrierung angegeben werden ob ein
cached werden soll. Der dritte Parameter f&uuml;r register_block, register_compiler_function Plugin cached werden soll. Der dritte Parameter f<EFBFBD>r <link
und register_function heisst <parameter>$cacheable</parameter>, der Standardwert ist TRUE, was in Smarty vor linkend="api.register.block">register_block</link>, <link
Version 2.6.0 &uuml;blich war. linkend="api.register.compiler.function">register_compiler_function</link>
</para> und <link linkend="api.register.function">register_function</link>
<para> heisst <parameter>$cacheable</parameter>, der Standardwert ist TRUE,
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&auml;lt sich ein wenig wie <link linkend="plugins.inserts">insert</link>. was das Verhalten von Smarty vor Version 2.6.0 wiederspiegelt.
</para> </para>
<para> <para>
Im Gegensatz zu <link linkend="language.function.insert">{insert}</link> werden die Attribute standartm&auml;ssig nicht gecached. Sie k&ouml;nnen das caching jedoch mit dem vierten Parameter <parameter>$cache_attrs</parameter> kontrollieren. <parameter>$cache_attrs</parameter> ist ein Array aller Attributnamen die gecached wertden sollen. Wenn ein Plugin mit <parameter>$cacheable=false</parameter>
</para> registriert wird, wird er bei jedem Besuch der Seite aufgerufen,
<example> selbst wenn die Site aus dem Cache stammt. Die Pluginfunktion
<title>Preventing a plugin's output from being cached</title> verh<EFBFBD>lt sich ein wenig wie <link
<programlisting> linkend="plugins.inserts">{insert}</link>.
</para>
<para>
Im Gegensatz zu <link
linkend="plugins.inserts">{insert}</link> werden die
Attribute standartm&auml;ssig nicht gecached. Sie k&ouml;nnen das
caching jedoch mit dem vierten Parameter
<parameter>$cache_attrs</parameter>
kontrollieren. <parameter>$cache_attrs</parameter> ist ein Array
aller Attributnamen die gecached werden sollen.
</para>
<example>
<title>Verhindern des Caching der Ausgabe eines Plugins</title>
<programlisting role="php">
<![CDATA[ <![CDATA[
<?php <?php
require('Smarty.class.php'); require('Smarty.class.php');
@@ -35,29 +49,31 @@ function remaining_seconds($params, &$smarty) {
$smarty->register_function('remaining', 'remaining_seconds', false, array('endtime')); $smarty->register_function('remaining', 'remaining_seconds', false, array('endtime'));
if (!$smarty->is_cached('index.tpl')) { if (!$smarty->is_cached('index.tpl')) {
// objekt $obj aus datenbank dem template zuweisen // Objekt $obj aus Datenbank dem Template zuweisen
$smarty->assign_by_ref('obj', $obj); $smarty->assign_by_ref('obj', $obj);
} }
$smarty->display('index.tpl'); $smarty->display('index.tpl');
?> ?>
]]> ]]>
</programlisting> </programlisting>
<para> <para>
where index.tpl is: Bei folgendem index.tpl:
</para> </para>
<programlisting> <programlisting>
<![CDATA[ <![CDATA[
Zeit: {remain endtime=$obj->endtime} Verbleibende Zeit: {remain endtime=$obj->endtime}
]]> ]]>
</programlisting> </programlisting>
<para> <para>
Der Wert von $obj->endtime &auml;ndert bei jeder Anzeige der Seite, selbst wenn die Seite gecached wurde. Das Objekt $obj wird nur geladen wenn die Seite nicht gecached wurde. Der Wert von $obj->endtime &auml;ndert bei jeder Anzeige der Seite,
</para> selbst wenn die Seite gecached wurde. Das Objekt $obj wird nur
</example> geladen wenn die Seite nicht gecached wurde.
<example> </para>
<title>Verhindern dass Template Bl&ouml;cke gecached werden</title> </example>
<programlisting> <example>
<title>Verhindern dass Template Bl<42>cke gecached werden</title>
<programlisting>
<![CDATA[ <![CDATA[
index.php: index.php:
@@ -74,28 +90,30 @@ $smarty->register_block('dynamic', 'smarty_block_dynamic', false);
$smarty->display('index.tpl'); $smarty->display('index.tpl');
?> ?>
]]> ]]>
</programlisting> </programlisting>
<para> <para>
where index.tpl is: Bei folgendem index.tpl:
</para> </para>
<programlisting> <programlisting>
<![CDATA[ <![CDATA[
Page created: {"0"|date_format:"%D %H:%M:%S"} Seite wurde erzeugt: {"0"|date_format:"%D %H:%M:%S"}
{dynamic} {dynamic}
Now is: {"0"|date_format:"%D %H:%M:%S"} Jetzt ist es: {"0"|date_format:"%D %H:%M:%S"}
... do other stuff ... ... weitere Ausgaben ...
{/dynamic} {/dynamic}
]]> ]]>
</programlisting> </programlisting>
</example> </example>
<para> <para>
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
</para> werden soll, kann dieser Abschnitt in einen {dynamic}...{/dynamic}
Block verpackt werden.
</para>
</sect1> </sect1>
<!-- Keep this comment at the end of the file <!-- Keep this comment at the end of the file
Local variables: Local variables:

View File

@@ -1,17 +1,47 @@
<?xml version="1.0" encoding="iso-8859-1"?> <?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ --> <!-- $Revision$ -->
<!-- EN-Revision: 1.2 Maintainer: andreas Status: ready --> <!-- EN-Revision: 1.5 Maintainer: andreas Status: ready -->
<sect1 id="caching.groups"> <sect1 id="caching.groups">
<title>Cache-Gruppen</title> <title>Cache-Gruppen</title>
<para> <para>
Sie k&ouml;nnen auch eine feinere Gruppierung vornehmen, indem Sie Sie k<EFBFBD>nnen auch eine feinere Gruppierung vornehmen, indem Sie
'cache_id'-Gruppen erzeugen. Dies erreichen Sie, indem Sie jede Cache-Untergruppe 'cache_id'-Gruppen erzeugen. Dies erreichen Sie, indem Sie jede Cache-Untergruppe
durch ein '|'-Zeichen (pipe) in der 'cache_id' abtrennen. Sie k&ouml;nnen so viele durch ein '|'-Zeichen (pipe) in der 'cache_id' abtrennen. Sie k<EFBFBD>nnen so viele
Untergruppen erstellen, wie Sie m&ouml;chten. Untergruppen erstellen, wie Sie m<EFBFBD>chten.
</para> </para>
<example> <para>
<title>'cache_id'-Gruppen</title>
<programlisting> 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<65>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.
</para>
<para>
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.
</para>
<example>
<title>'cache_id'-Gruppen</title>
<programlisting>
<![CDATA[ <![CDATA[
<?php <?php
require('Smarty.class.php'); require('Smarty.class.php');
@@ -20,29 +50,17 @@ $smarty = new Smarty;
$smarty->caching = true; $smarty->caching = true;
// leere alle Caches welche 'sports|basketball' als erste zwei 'cache_id'-Gruppen enthalten // 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 // leere alle Caches welche 'sports' als erste 'cache_id'-Gruppe haben. Dies schliesst
// 'sports|basketball', oder 'sports|(anything)|(anything)|(anything)|...' ein // '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');
?> ?>
]]> ]]>
</programlisting> </programlisting>
</example> </example>
<note>
<title>Technische Bemerkung</title>
<para>
Cache-Gruppierung benutzt nicht den Pfad zum Template f&uuml;r die 'cache_id'. Wenn Sie
zum Beispiel display('themes/blue/index.tpl') aufrufen, k&ouml;nnen Sie NICHT
den ganzen Cache unter 'themes/blue' leeren. Wenn Sie dies tun m&ouml;chten,
m&uuml;ssen Sie die Caches anhand der 'cache_id' gruppieren - zum Beispiel
display('themes/blue/index.tpl','themes|blue');
Danach k&ouml;nnen Sie alle Caches des 'blue-theme' mit clear_cache(null, 'themes|blue');
leeren.
</para>
</note>
</sect1> </sect1>
<!-- Keep this comment at the end of the file <!-- Keep this comment at the end of the file
Local variables: Local variables:

View File

@@ -1,18 +1,20 @@
<?xml version="1.0" encoding="iso-8859-1"?> <?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ --> <!-- $Revision$ -->
<!-- EN-Revision: 1.2 Maintainer: andreas Status: ready --> <!-- EN-Revision: 1.3 Maintainer: andreas Status: ready -->
<sect1 id="caching.multiple.caches"> <sect1 id="caching.multiple.caches">
<title>Multiple Caches f&uuml;r eine Seite</title> <title>Multiple Caches f<EFBFBD>r eine Seite</title>
<para> <para>
Sie k&ouml;nnen f&uuml;r Aufrufe von 'display()' oder 'fetch()' auch mehrere Caches erzeugen. Sie k<EFBFBD>nnen f<>r Aufrufe von <link
Nehmen wir zum Beispiel an, der Aufruf von display('index.tpl') erzeuge f&uuml;r linkend="api.display">display()</link> oder <link
verschieden F&auml;lle unterschiedliche Inhalte und Sie wollen jeden dieser Inhalte linkend="api.fetch">fetch()</link> auch mehrere Caches erzeugen.
separat cachen. Um dies zu erreichen, k&ouml;nnen Sie eine 'cache_id' beim Funktionsaufruf Nehmen wir zum Beispiel an, der Aufruf von display('index.tpl')
&uuml;bergeben. erzeuge f<>r verschieden F<>lle unterschiedliche Inhalte und Sie
</para> wollen jeden dieser Inhalte separat cachen. Um dies zu erreichen,
<example> k<EFBFBD>nnen Sie eine 'cache_id' beim Funktionsaufruf <20>bergeben.
<title>'display()' eine 'cache_id' &uuml;bergeben</title> </para>
<programlisting> <example>
<title>'display()' eine 'cache_id' <20>bergeben</title>
<programlisting>
<![CDATA[ <![CDATA[
<?php <?php
require('Smarty.class.php'); require('Smarty.class.php');
@@ -25,38 +27,40 @@ $my_cache_id = $_GET['article_id'];
$smarty->display('index.tpl',$my_cache_id); $smarty->display('index.tpl',$my_cache_id);
?> ?>
]]> ]]>
</programlisting> </programlisting>
</example> </example>
<para> <para>
Im oberen Beispiel &uuml;bergeben wir die Variable '$my_cache_id' Im oberen Beispiel <EFBFBD>bergeben wir die Variable
als 'cache_id' an 'display()'. F&uuml;r jede einmalige 'cache_id' <parameter>$my_cache_id</parameter> als 'cache_id' an d<link
wird ein eigener Cache von 'index.tpl' erzeugt. In diesem linkend="api.display">isplay()</link>. F<>r jede einmalige
Beispiel wurde 'article_id' per URL &uuml;bergeben und als 'cache_id' verwendet. <parameter>cache_id</parameter> wird ein eigener Cache von 'index.tpl'
</para> erzeugt. In diesem Beispiel wurde 'article_id' per URL <20>bergeben und
<note> als 'cache_id' verwendet.
<title>Technische Bemerkung</title> </para>
<para> <note>
Seien Sie vorsichtig, wenn Sie Smarty (oder jeder anderen PHP-Applikation) <title>Technische Bemerkung</title>
Werte direkt vom Client (Webbrowser) &uuml;bergeben. Obwohl das Beispiel oben <para>
praktisch aussehen mag, kann es schwerwiegende Konsequenzen haben. Die 'cache_id' Seien Sie vorsichtig, wenn Sie Smarty (oder jeder anderen PHP-Applikation)
wird verwendet, um im Dateisystem ein Verzeichnis zu erstellen. Wenn ein Benutzer Werte direkt vom Client (Webbrowser) <20>bergeben. Obwohl das Beispiel oben
also &uuml;berlange Werte &uuml;bergibt oder ein Skript benutzt, das in hohem praktisch aussehen mag, kann es schwerwiegende Konsequenzen haben. Die 'cache_id'
Tempo neue 'article_ids' &uuml;bermittelt, kann dies auf dem Server zu Problemen wird verwendet, um im Dateisystem ein Verzeichnis zu erstellen. Wenn ein Benutzer
f&uuml;hren. Stellen Sie daher sicher, dass Sie alle empfangenen Werte auf also <20>berlange Werte <20>bergibt oder ein Skript benutzt, das in hohem
ihre G&uuml;ltigkeit &uuml;berpr&uuml;fen und unerlaubte Sequenzen entfernen. Tempo neue 'article_ids' <20>bermittelt, kann dies auf dem Server zu Problemen
Sie wissen m&ouml;glicherweise, dass ihre 'article_id' nur 10 Zeichen lang sein kann, nur f<EFBFBD>hren. Stellen Sie daher sicher, dass Sie alle empfangenen Werte auf
aus alphanumerischen Zeichen bestehen darf und in der Datenbank eingetragen ihre G<>ltigkeit <20>berpr<70>fen und unerlaubte Sequenzen entfernen.
sein muss. &uuml;berp&uuml;fen sie das! Sie wissen m<EFBFBD>glicherweise, dass ihre 'article_id' nur 10 Zeichen lang sein kann, nur
</para> aus alphanumerischen Zeichen bestehen darf und in der Datenbank eingetragen
</note> sein muss. <20>berp<72>fen sie das!
<para> </para>
Denken Sie daran, Aufrufen von <link linkend="api.is.cached">is_cached()</link> </note>
und <link linkend="api.clear.cache">clear_cache()</link> als zweiten Parameter <para>
die 'cache_id' zu &uuml;bergeben. Denken Sie daran, Aufrufen von <link linkend="api.is.cached">is_cached()</link>
</para> und <link linkend="api.clear.cache">clear_cache()</link> als zweiten Parameter
<example> die 'cache_id' zu <20>bergeben.
<title>'is_cached()' mit 'cache_id' aufrufen</title> </para>
<programlisting> <example>
<title>'is_cached()' mit 'cache_id' aufrufen</title>
<programlisting>
<![CDATA[ <![CDATA[
<?php <?php
require('Smarty.class.php'); require('Smarty.class.php');
@@ -67,7 +71,7 @@ $smarty->caching = true;
$my_cache_id = $_GET['article_id']; $my_cache_id = $_GET['article_id'];
if(!$smarty->is_cached('index.tpl',$my_cache_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(); $contents = get_database_contents();
$smarty->assign($contents); $smarty->assign($contents);
} }
@@ -75,15 +79,16 @@ if(!$smarty->is_cached('index.tpl',$my_cache_id)) {
$smarty->display('index.tpl',$my_cache_id); $smarty->display('index.tpl',$my_cache_id);
?> ?>
]]> ]]>
</programlisting> </programlisting>
</example> </example>
<para> <para>
Sie k&ouml;nnen mit 'clear_cache()' den gesamten Cache einer bestimmten 'cache_id' Sie k<EFBFBD>nnen mit <link linkend="api.clear.cache">clear_cache()</link>
auf einmal l&ouml;schen, wenn Sie als Parameter die 'cache_id' &uuml;bergeben. den gesamten Cache einer bestimmten 'cache_id' auf einmal l<>schen,
</para> wenn Sie als Parameter die 'cache_id' <20>bergeben.
<example> </para>
<title>Cache einer bestimmten 'cache_id' leeren</title> <example>
<programlisting> <title>Cache einer bestimmten 'cache_id' leeren</title>
<programlisting>
<![CDATA[ <![CDATA[
<?php <?php
require('Smarty.class.php'); require('Smarty.class.php');
@@ -91,17 +96,17 @@ $smarty = new Smarty;
$smarty->caching = true; $smarty->caching = true;
// Cache mit 'sports' als 'cache_id' l&ouml;schen // Cache mit 'sports' als 'cache_id' l<EFBFBD>schen
$smarty->clear_cache(null,"sports"); $smarty->clear_cache(null,"sports");
$smarty->display('index.tpl',"sports"); $smarty->display('index.tpl',"sports");
?> ?>
]]> ]]>
</programlisting> </programlisting>
</example> </example>
<para> <para>
Indem Sie allen dieselbe 'cache_id' &uuml;bergeben, lassen sich Caches gruppieren. Indem Sie allen dieselbe 'cache_id' <EFBFBD>bergeben, lassen sich Caches gruppieren.
</para> </para>
</sect1> </sect1>
<!-- Keep this comment at the end of the file <!-- Keep this comment at the end of the file
Local variables: Local variables:

View File

@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="iso-8859-1"?> <?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ --> <!-- $Revision$ -->
<!-- EN-Revision: 1.2 Maintainer: andreas Status: ready --> <!-- EN-Revision: 1.6 Maintainer: andreas Status: ready -->
<sect1 id="caching.setting.up"> <sect1 id="caching.setting.up">
<title>Caching einrichten</title> <title>Caching einrichten</title>
<para> <para>
Als erstes muss das Caching eingeschaltet werden. Dies erreicht man, indem Als erstes muss das Caching eingeschaltet werden. Dies erreicht man, indem
<link linkend="variable.caching">$caching</link> auf 'true' (oder 1) gesetzt wird. <link linkend="variable.caching">$caching</link> = 1 (oder 2) gesetzt wird.
</para> </para>
<example> <example>
<title>Caching einschalten</title> <title>Caching einschalten</title>
@@ -26,24 +26,29 @@ $smarty->display('index.tpl');
Wenn Caching eingeschaltet ist, wird der Funktionsaufruf 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 das Template normal rendern, zur selben Zeit jedoch auch eine Datei mit
dem Inhalt in das <link linkend="variable.cache.dir">$cache_dir</link> schreiben dem Inhalt in das <link linkend="variable.cache.dir">$cache_dir</link> schreiben
(als gecachte Kopie). Beim n&auml;chsten Aufruf von display('index.tpl') wird die (als gecachte Kopie). Beim n<EFBFBD>chsten Aufruf von display('index.tpl') wird die
gecachte Kopie verwendet. gecachte Kopie verwendet.
</para> </para>
<note> <note>
<title>Technische Bemerkung</title> <title>Technische Bemerkung</title>
<para> <para>
Die im '$cache_dir' abgelegen Dateien haben einen &auml;hnlichen Namen Die im <link linkend="variable.cache.dir">$cache_dir</link>
wie das Template, mit dem sie erzeugt wurden. Obwohl sie eine '.php'-Endung abgelegen Dateien haben einen <20>hnlichen Namen wie das Template,
aufweisen, sind sie keine ausf&uuml;hrbaren PHP-Skripte. mit dem sie erzeugt wurden. Obwohl sie eine '.php'-Endung
aufweisen, sind sie keine ausf<73>hrbaren PHP-Skripte.
Editieren Sie diese Dateien NICHT! Editieren Sie diese Dateien NICHT!
</para> </para>
</note> </note>
<para> <para>
Jede gecachte Seite hat eine Lebensdauer, die von <link linkend="variable.cache.lifetime">$cache_lifetime</link> Jede gecachte Seite hat eine Lebensdauer, die von <link
bestimmt wird. Normalerweise betr&auml;gt der Wert 3600 Sekunden (= 1 Stunde). Nach Ablauf dieser Lebensdauer linkend="variable.cache.lifetime">$cache_lifetime</link> bestimmt
wird der Cache neu generiert. Sie k&ouml;nnen die Lebensdauer pro Cache bestimmen indem Sie '$caching' wird. Normalerweise betr<74>gt der Wert 3600 Sekunden (= 1
auf 2 setzen. Konsultieren Sie den Abschnitt &uuml;ber <link linkend="variable.cache.lifetime">$cache_lifetime</link> Stunde). Nach Ablauf dieser Lebensdauer wird der Cache neu
f&uuml;r weitere Informationen. generiert. Sie k<>nnen die Lebensdauer pro Cache bestimmen indem
Sie <link linkend="variable.caching">$caching</link> auf 2
setzen. Konsultieren Sie den Abschnitt <20>ber <link
linkend="variable.cache.lifetime">$cache_lifetime</link> f<>r
weitere Informationen.
</para> </para>
<example> <example>
<title>'$cache_lifetime' pro Cache einstellen</title> <title>'$cache_lifetime' pro Cache einstellen</title>
@@ -55,16 +60,16 @@ $smarty = new Smarty;
$smarty->caching = 2; // Lebensdauer ist pro Cache $smarty->caching = 2; // Lebensdauer ist pro Cache
// Standardwert f&uuml;r '$cache_lifetime' auf 5 Minuten setzen // Standardwert f<EFBFBD>r '$cache_lifetime' auf 5 Minuten setzen
$smarty->cache_lifetime = 300; $smarty->cache_lifetime = 300;
$smarty->display('index.tpl'); $smarty->display('index.tpl');
// '$cache_lifetime' f&uuml;r 'home.tpl' auf 1 Stunde setzen // '$cache_lifetime' f<EFBFBD>r 'home.tpl' auf 1 Stunde setzen
$smarty->cache_lifetime = 3600; $smarty->cache_lifetime = 3600;
$smarty->display('home.tpl'); $smarty->display('home.tpl');
// ACHTUNG: die folgende Zuweisung an '$cache_lifetime' wird nicht funktionieren, // ACHTUNG: die folgende Zuweisung an '$cache_lifetime' wird nicht funktionieren,
// wenn '$caching' auf 2 gestellt ist. Wenn die '$cache_lifetime' f&uuml;r 'home.tpl' bereits // wenn '$caching' auf 2 gestellt ist. Wenn die '$cache_lifetime' f<EFBFBD>r 'home.tpl' bereits
// auf 1 Stunde gesetzt wurde, werden neue Werte ignoriert. // auf 1 Stunde gesetzt wurde, werden neue Werte ignoriert.
// 'home.tpl' wird nach dieser Zuweisung immer noch eine '$cache_lifetime' von 1 Stunde haben // 'home.tpl' wird nach dieser Zuweisung immer noch eine '$cache_lifetime' von 1 Stunde haben
$smarty->cache_lifetime = 30; // 30 seconds $smarty->cache_lifetime = 30; // 30 seconds
@@ -74,13 +79,15 @@ $smarty->display('home.tpl');
</programlisting> </programlisting>
</example> </example>
<para> <para>
Wenn <link linkend="variable.compile.check">$compile_check</link> eingeschaltet ist, Wenn <link linkend="variable.compile.check">$compile_check</link>
werden alle in den Cache eingeflossenen Templates und Konfigurationsdateien eingeschaltet ist, werden alle in den Cache eingeflossenen
hinsichtlich ihrer letzten &auml;nderung &uuml;berpr&uuml;ft. Templates und Konfigurationsdateien hinsichtlich ihrer letzten
Falls eine der Dateien seit der Erzeugung des Cache ge&auml;ndert wurde, <20>nderung <20>berpr<70>ft. Falls eine der Dateien seit der Erzeugung des
wird der Cache unverz&uuml;glich neu generiert. Dadurch ergibt sich ein Cache ge<67>ndert wurde, wird der Cache unverz<EFBFBD>glich neu
geringer Mehraufwand. F&uuml;r optimale Performace sollte '$compile_check' generiert. Dadurch ergibt sich ein geringer Mehraufwand. F<>r
deshalb auf 'false' gesetzt werden. optimale Performance sollte <link
linkend="variable.compile.check">$compile_check</link> deshalb auf
'false' gesetzt werden.
</para> </para>
<example> <example>
<title>'$compile_check' einschalten</title> <title>'$compile_check' einschalten</title>
@@ -101,15 +108,15 @@ $smarty->display('index.tpl');
<para> <para>
Wenn <link linkend="variable.force.compile">$force_compile</link> eingeschaltet ist, Wenn <link linkend="variable.force.compile">$force_compile</link> eingeschaltet ist,
werden die Cache-Dateien immer neu generiert und das Caching damit wirkungslos gemacht. werden die Cache-Dateien immer neu generiert und das Caching damit wirkungslos gemacht.
'$force_compile' wird normalerweise nur f&uuml;r die Fehlersuche verwendet. <link linkend="variable.force.compile">$force_compile</link> wird normalerweise nur f<EFBFBD>r die Fehlersuche verwendet.
Ein effizienterer Weg das Caching auszuschalten w&auml;re, Ein effizienterer Weg das Caching auszuschalten w<EFBFBD>re,
<link linkend="variable.caching">$caching</link> auf 'false' (oder 0) zu setzen. <link linkend="variable.caching">$caching</link> auf 'false' (oder 0) zu setzen.
</para> </para>
<para> <para>
Mit der Funktion <link linkend="api.is.cached">is_cached()</link> kann &uuml;berpr&uuml;ft Mit der Funktion <link linkend="api.is.cached">is_cached()</link> kann <EFBFBD>berpr<EFBFBD>ft
werden, ob von einem Template eine gecachte Version vorliegt. werden, ob von einem Template eine gecachte Version vorliegt.
In einem Template, das zum Beispiel Daten aus einer Datenbank bezieht, In einem Template, das zum Beispiel Daten aus einer Datenbank bezieht,
k&ouml;nnen Sie diese Funktion verwenden, um den Prozess zu &uuml;berspringen. k<EFBFBD>nnen Sie diese Funktion verwenden, um den Prozess zu <EFBFBD>berspringen.
</para> </para>
<example> <example>
<title>is_cached() verwenden</title> <title>is_cached() verwenden</title>
@@ -122,7 +129,7 @@ $smarty = new Smarty;
$smarty->caching = true; $smarty->caching = true;
if(!$smarty->is_cached('index.tpl')) { if(!$smarty->is_cached('index.tpl')) {
// kein Cache gefunden, also Variablen zuweisen // kein Cache gefunden, also Variablen zuweisen
$contents = get_database_contents(); $contents = get_database_contents();
$smarty->assign($contents); $smarty->assign($contents);
} }
@@ -133,16 +140,16 @@ $smarty->display('index.tpl');
</programlisting> </programlisting>
</example> </example>
<para> <para>
Mit der <link linkend="language.function.insert">insert</link> Funktion k&ouml;nnen Sie Mit der <link linkend="language.function.insert">{insert}</link> Funktion k<EFBFBD>nnen Sie
Teile einer Seite dynamisch halten. Wenn zum Beispiel ein Banner in einer gecachten Seite 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. nicht gecached werden soll, kann dessen Aufruf mit <link linkend="language.function.insert">{insert}</link> dynamisch gehalten werden.
Konsultieren Sie den Abschnitt &uuml;ber <link linkend="language.function.insert">insert</link> Konsultieren Sie den Abschnitt <EFBFBD>ber <link linkend="language.function.insert">insert</link>
f&uuml;r weitere Informationen und Beispiele. f<EFBFBD>r weitere Informationen und Beispiele.
</para> </para>
<para> <para>
Mit der Funktion <link linkend="api.clear.all.cache">clear_all_cache()</link> k&ouml;nnen Mit der Funktion <link linkend="api.clear.all.cache">clear_all_cache()</link> k<EFBFBD>nnen
Sie den gesamten Template-Cache l&ouml;schen. Mit <link linkend="api.clear.cache">clear_cache()</link> Sie den gesamten Template-Cache l<EFBFBD>schen. Mit <link linkend="api.clear.cache">clear_cache()</link>
einzelne Templates oder Template-Gruppen. einzelne Templates oder <link linkend="caching.groups">Cache-Gruppen</link>.
</para> </para>
<example> <example>
<title>Cache leeren</title> <title>Cache leeren</title>
@@ -154,10 +161,10 @@ $smarty = new Smarty;
$smarty->caching = true; $smarty->caching = true;
// alle Cache-Dateien l&ouml;schen // alle Cache-Dateien l<EFBFBD>schen
$smarty->clear_all_cache(); $smarty->clear_all_cache();
// nur Cache von 'index.tpl' l&ouml;schen // nur Cache von 'index.tpl' l<EFBFBD>schen
$smarty->clear_cache('index.tpl'); $smarty->clear_cache('index.tpl');
$smarty->display('index.tpl'); $smarty->display('index.tpl');