mirror of
https://github.com/smarty-php/smarty.git
synced 2025-08-05 10:54:27 +02:00
sync with en
This commit is contained in:
@@ -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ü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 ü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ä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ässig nicht gecached. Sie kö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ässig nicht gecached. Sie kö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 ä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öcke gecached werden</title>
|
||||
<programlisting>
|
||||
</programlisting>
|
||||
<para>
|
||||
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.
|
||||
</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:
|
||||
|
@@ -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ö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.
|
||||
</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ü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.
|
||||
</para>
|
||||
</note>
|
||||
</programlisting>
|
||||
</example>
|
||||
</sect1>
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
|
@@ -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ür eine Seite</title>
|
||||
<para>
|
||||
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.
|
||||
</para>
|
||||
<example>
|
||||
<title>'display()' eine 'cache_id' ü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 ü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.
|
||||
</para>
|
||||
<note>
|
||||
<title>Technische Bemerkung</title>
|
||||
<para>
|
||||
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!
|
||||
</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 ü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önnen mit 'clear_cache()' den gesamten Cache einer bestimmten 'cache_id'
|
||||
auf einmal löschen, wenn Sie als Parameter die 'cache_id' ü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ö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' ü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:
|
||||
|
@@ -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ä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 ä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 <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ä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 <link linkend="variable.cache.lifetime">$cache_lifetime</link>
|
||||
fü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ü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ü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ü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 ä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 <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ür die Fehlersuche verwendet.
|
||||
Ein effizienterer Weg das Caching auszuschalten wä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 überprü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önnen Sie diese Funktion verwenden, um den Prozess zu ü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ö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 über <link linkend="language.function.insert">insert</link>
|
||||
fü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önnen
|
||||
Sie den gesamten Template-Cache lö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öschen
|
||||
// alle Cache-Dateien l<EFBFBD>schen
|
||||
$smarty->clear_all_cache();
|
||||
|
||||
// nur Cache von 'index.tpl' löschen
|
||||
// nur Cache von 'index.tpl' l<EFBFBD>schen
|
||||
$smarty->clear_cache('index.tpl');
|
||||
|
||||
$smarty->display('index.tpl');
|
||||
|
Reference in New Issue
Block a user