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"?>
<!-- $Revision$ -->
<!-- EN-Revision: 1.5 Maintainer: andreas Status: ready -->
<sect1 id="caching.cacheable">
<title>Die Ausgabe von cachebaren Plugins Kontrollieren</title>
<para>
Seit Smarty-2.6.0 kann bei der Registrierung angegeben werden ob ein Plugin
cached werden soll. Der dritte Parameter f&uuml;r register_block, register_compiler_function
und register_function heisst <parameter>$cacheable</parameter>, der Standardwert ist TRUE, was in Smarty vor
Version 2.6.0 &uuml;blich war.
</para>
<para>
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>.
</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.
</para>
<example>
<title>Preventing a plugin's output from being cached</title>
<programlisting>
<!-- EN-Revision: 1.8 Maintainer: andreas Status: ready -->
<sect1 id="caching.cacheable">
<title>Die Ausgabe von cachebaren Plugins Kontrollieren</title>
<para>
Seit Smarty-2.6.0 kann bei der Registrierung angegeben werden ob ein
Plugin cached werden soll. Der dritte Parameter f<EFBFBD>r <link
linkend="api.register.block">register_block</link>, <link
linkend="api.register.compiler.function">register_compiler_function</link>
und <link linkend="api.register.function">register_function</link>
heisst <parameter>$cacheable</parameter>, der Standardwert ist TRUE,
was das Verhalten von Smarty vor Version 2.6.0 wiederspiegelt.
</para>
<para>
Wenn ein Plugin mit <parameter>$cacheable=false</parameter>
registriert wird, wird er bei jedem Besuch der Seite aufgerufen,
selbst wenn die Site aus dem Cache stammt. Die Pluginfunktion
verh<EFBFBD>lt sich ein wenig wie <link
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[
<?php
require('Smarty.class.php');
@@ -35,29 +49,31 @@ function remaining_seconds($params, &$smarty) {
$smarty->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');
?>
]]>
</programlisting>
<para>
where index.tpl is:
</para>
<programlisting>
</programlisting>
<para>
Bei folgendem index.tpl:
</para>
<programlisting>
<![CDATA[
Zeit: {remain endtime=$obj->endtime}
Verbleibende Zeit: {remain endtime=$obj->endtime}
]]>
</programlisting>
<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.
</para>
</example>
<example>
<title>Verhindern dass Template Bl&ouml;cke gecached werden</title>
<programlisting>
</programlisting>
<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.
</para>
</example>
<example>
<title>Verhindern dass Template Bl<42>cke gecached werden</title>
<programlisting>
<![CDATA[
index.php:
@@ -74,28 +90,30 @@ $smarty->register_block('dynamic', 'smarty_block_dynamic', false);
$smarty->display('index.tpl');
?>
]]>
</programlisting>
<para>
where index.tpl is:
</para>
<programlisting>
</programlisting>
<para>
Bei folgendem index.tpl:
</para>
<programlisting>
<![CDATA[
Page created: {"0"|date_format:"%D %H:%M:%S"}
Seite wurde erzeugt: {"0"|date_format:"%D %H:%M:%S"}
{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}
]]>
</programlisting>
</example>
<para>
Um sicherzustellen dass ein Teil eines Templates nicht gecached werden soll, kann dieser Abschnitt in einen {dynamic}...{/dynamic} Block verpackt werden.
</para>
</programlisting>
</example>
<para>
Um sicherzustellen dass ein Teil eines Templates nicht gecached
werden soll, kann dieser Abschnitt in einen {dynamic}...{/dynamic}
Block verpackt werden.
</para>
</sect1>
<!-- Keep this comment at the end of the file
Local variables:

View File

@@ -1,17 +1,47 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<!-- EN-Revision: 1.2 Maintainer: andreas Status: ready -->
<sect1 id="caching.groups">
<title>Cache-Gruppen</title>
<para>
Sie k&ouml;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&ouml;nnen so viele
Untergruppen erstellen, wie Sie m&ouml;chten.
</para>
<example>
<title>'cache_id'-Gruppen</title>
<programlisting>
<!-- EN-Revision: 1.5 Maintainer: andreas Status: ready -->
<sect1 id="caching.groups">
<title>Cache-Gruppen</title>
<para>
Sie k<EFBFBD>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<EFBFBD>nnen so viele
Untergruppen erstellen, wie Sie m<EFBFBD>chten.
</para>
<para>
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[
<?php
require('Smarty.class.php');
@@ -20,29 +50,17 @@ $smarty = new Smarty;
$smarty->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');
?>
]]>
</programlisting>
</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>
</programlisting>
</example>
</sect1>
<!-- Keep this comment at the end of the file
Local variables:

View File

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

View File

@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<!-- EN-Revision: 1.2 Maintainer: andreas Status: ready -->
<!-- EN-Revision: 1.6 Maintainer: andreas Status: ready -->
<sect1 id="caching.setting.up">
<title>Caching einrichten</title>
<para>
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>
<example>
<title>Caching einschalten</title>
@@ -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 <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.
</para>
<note>
<title>Technische Bemerkung</title>
<para>
Die im '$cache_dir' abgelegen Dateien haben einen &auml;hnlichen Namen
wie das Template, mit dem sie erzeugt wurden. Obwohl sie eine '.php'-Endung
aufweisen, sind sie keine ausf&uuml;hrbaren PHP-Skripte.
Die im <link linkend="variable.cache.dir">$cache_dir</link>
abgelegen Dateien haben einen <20>hnlichen Namen wie das Template,
mit dem sie erzeugt wurden. Obwohl sie eine '.php'-Endung
aufweisen, sind sie keine ausf<73>hrbaren PHP-Skripte.
Editieren Sie diese Dateien NICHT!
</para>
</note>
<para>
Jede gecachte Seite hat eine Lebensdauer, die von <link linkend="variable.cache.lifetime">$cache_lifetime</link>
bestimmt wird. Normalerweise betr&auml;gt der Wert 3600 Sekunden (= 1 Stunde). Nach Ablauf dieser Lebensdauer
wird der Cache neu generiert. Sie k&ouml;nnen die Lebensdauer pro Cache bestimmen indem Sie '$caching'
auf 2 setzen. Konsultieren Sie den Abschnitt &uuml;ber <link linkend="variable.cache.lifetime">$cache_lifetime</link>
f&uuml;r weitere Informationen.
Jede gecachte Seite hat eine Lebensdauer, die von <link
linkend="variable.cache.lifetime">$cache_lifetime</link> bestimmt
wird. Normalerweise betr<74>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 <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>
<example>
<title>'$cache_lifetime' pro Cache einstellen</title>
@@ -55,16 +60,16 @@ $smarty = new Smarty;
$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->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->display('home.tpl');
// 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.
// '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');
</programlisting>
</example>
<para>
Wenn <link linkend="variable.compile.check">$compile_check</link> eingeschaltet ist,
werden alle in den Cache eingeflossenen Templates und Konfigurationsdateien
hinsichtlich ihrer letzten &auml;nderung &uuml;berpr&uuml;ft.
Falls eine der Dateien seit der Erzeugung des Cache ge&auml;ndert wurde,
wird der Cache unverz&uuml;glich neu generiert. Dadurch ergibt sich ein
geringer Mehraufwand. F&uuml;r optimale Performace sollte '$compile_check'
deshalb auf 'false' gesetzt werden.
Wenn <link linkend="variable.compile.check">$compile_check</link>
eingeschaltet ist, werden alle in den Cache eingeflossenen
Templates und Konfigurationsdateien hinsichtlich ihrer letzten
<20>nderung <20>berpr<70>ft. Falls eine der Dateien seit der Erzeugung des
Cache ge<67>ndert wurde, wird der Cache unverz<EFBFBD>glich neu
generiert. Dadurch ergibt sich ein geringer Mehraufwand. F<>r
optimale Performance sollte <link
linkend="variable.compile.check">$compile_check</link> deshalb auf
'false' gesetzt werden.
</para>
<example>
<title>'$compile_check' einschalten</title>
@@ -101,15 +108,15 @@ $smarty->display('index.tpl');
<para>
Wenn <link linkend="variable.force.compile">$force_compile</link> eingeschaltet ist,
werden die Cache-Dateien immer neu generiert und das Caching damit wirkungslos gemacht.
'$force_compile' wird normalerweise nur f&uuml;r die Fehlersuche verwendet.
Ein effizienterer Weg das Caching auszuschalten w&auml;re,
<link linkend="variable.force.compile">$force_compile</link> wird normalerweise nur f<EFBFBD>r die Fehlersuche verwendet.
Ein effizienterer Weg das Caching auszuschalten w<EFBFBD>re,
<link linkend="variable.caching">$caching</link> auf 'false' (oder 0) zu setzen.
</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.
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>
<example>
<title>is_cached() verwenden</title>
@@ -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');
</programlisting>
</example>
<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
nicht gecached werden soll, kann dessen Aufruf mit 'insert' dynamisch gehalten werden.
Konsultieren Sie den Abschnitt &uuml;ber <link linkend="language.function.insert">insert</link>
f&uuml;r weitere Informationen und Beispiele.
nicht gecached werden soll, kann dessen Aufruf mit <link linkend="language.function.insert">{insert}</link> dynamisch gehalten werden.
Konsultieren Sie den Abschnitt <EFBFBD>ber <link linkend="language.function.insert">insert</link>
f<EFBFBD>r weitere Informationen und Beispiele.
</para>
<para>
Mit der Funktion <link linkend="api.clear.all.cache">clear_all_cache()</link> k&ouml;nnen
Sie den gesamten Template-Cache l&ouml;schen. Mit <link linkend="api.clear.cache">clear_cache()</link>
einzelne Templates oder Template-Gruppen.
Mit der Funktion <link linkend="api.clear.all.cache">clear_all_cache()</link> k<EFBFBD>nnen
Sie den gesamten Template-Cache l<EFBFBD>schen. Mit <link linkend="api.clear.cache">clear_cache()</link>
einzelne Templates oder <link linkend="caching.groups">Cache-Gruppen</link>.
</para>
<example>
<title>Cache leeren</title>
@@ -154,10 +161,10 @@ $smarty = new Smarty;
$smarty->caching = true;
// alle Cache-Dateien l&ouml;schen
// alle Cache-Dateien l<EFBFBD>schen
$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->display('index.tpl');