mirror of
https://github.com/smarty-php/smarty.git
synced 2025-08-06 03:14:27 +02:00
sync with en
This commit is contained in:
@@ -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ü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 ü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ä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ä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.
|
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ä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[
|
<![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 ä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 ä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ö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:
|
||||||
|
@@ -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ö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önnen so viele
|
durch ein '|'-Zeichen (pipe) in der 'cache_id' abtrennen. Sie k<EFBFBD>nnen so viele
|
||||||
Untergruppen erstellen, wie Sie mö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ü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>
|
|
||||||
</sect1>
|
</sect1>
|
||||||
<!-- Keep this comment at the end of the file
|
<!-- Keep this comment at the end of the file
|
||||||
Local variables:
|
Local variables:
|
||||||
|
@@ -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ür eine Seite</title>
|
<title>Multiple Caches f<EFBFBD>r eine Seite</title>
|
||||||
<para>
|
<para>
|
||||||
Sie können fü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ür
|
linkend="api.display">display()</link> oder <link
|
||||||
verschieden Fä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önnen Sie eine 'cache_id' beim Funktionsaufruf
|
Nehmen wir zum Beispiel an, der Aufruf von display('index.tpl')
|
||||||
ü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' ü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 übergeben wir die Variable '$my_cache_id'
|
Im oberen Beispiel <EFBFBD>bergeben wir die Variable
|
||||||
als 'cache_id' an 'display()'. Fü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 ü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) ü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 überlange Werte übergibt oder ein Skript benutzt, das in hohem
|
praktisch aussehen mag, kann es schwerwiegende Konsequenzen haben. Die 'cache_id'
|
||||||
Tempo neue 'article_ids' übermittelt, kann dies auf dem Server zu Problemen
|
wird verwendet, um im Dateisystem ein Verzeichnis zu erstellen. Wenn ein Benutzer
|
||||||
fü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ültigkeit überprüfen und unerlaubte Sequenzen entfernen.
|
Tempo neue 'article_ids' <20>bermittelt, kann dies auf dem Server zu Problemen
|
||||||
Sie wissen mö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. überpü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 ü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ö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öschen, wenn Sie als Parameter die 'cache_id' ü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ö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' ü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:
|
||||||
|
@@ -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ä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 ä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ü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ä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ö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 über <link linkend="variable.cache.lifetime">$cache_lifetime</link>
|
Stunde). Nach Ablauf dieser Lebensdauer wird der Cache neu
|
||||||
fü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ü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ü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ü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 änderung überprüft.
|
Templates und Konfigurationsdateien hinsichtlich ihrer letzten
|
||||||
Falls eine der Dateien seit der Erzeugung des Cache geändert wurde,
|
<20>nderung <20>berpr<70>ft. Falls eine der Dateien seit der Erzeugung des
|
||||||
wird der Cache unverzüglich neu generiert. Dadurch ergibt sich ein
|
Cache ge<67>ndert wurde, wird der Cache unverz<EFBFBD>glich neu
|
||||||
geringer Mehraufwand. Fü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ü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ä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 ü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.
|
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önnen Sie diese Funktion verwenden, um den Prozess zu ü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ö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 über <link linkend="language.function.insert">insert</link>
|
Konsultieren Sie den Abschnitt <EFBFBD>ber <link linkend="language.function.insert">insert</link>
|
||||||
fü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önnen
|
Mit der Funktion <link linkend="api.clear.all.cache">clear_all_cache()</link> k<EFBFBD>nnen
|
||||||
Sie den gesamten Template-Cache lö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öschen
|
// alle Cache-Dateien l<EFBFBD>schen
|
||||||
$smarty->clear_all_cache();
|
$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->clear_cache('index.tpl');
|
||||||
|
|
||||||
$smarty->display('index.tpl');
|
$smarty->display('index.tpl');
|
||||||
|
Reference in New Issue
Block a user