mirror of
				https://github.com/smarty-php/smarty.git
				synced 2025-11-03 22:01:36 +01:00 
			
		
		
		
	
		
			
	
	
		
			193 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
		
		
			
		
	
	
			193 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
| 
								 | 
							
								<?xml version="1.0" encoding="iso-8859-1"?>
							 | 
						|||
| 
								 | 
							
								<!-- $Revision$ -->
							 | 
						|||
| 
								 | 
							
								  <sect1 id="caching.setting.up">
							 | 
						|||
| 
								 | 
							
								   <title>Impostare il Caching</title>
							 | 
						|||
| 
								 | 
							
								   <para>
							 | 
						|||
| 
								 | 
							
								    La prima cosa da fare <20> abilitare il caching. Per farlo bisogna
							 | 
						|||
| 
								 | 
							
								    impostare <link linkend="variable.caching">$caching</link> = true (o 1.)
							 | 
						|||
| 
								 | 
							
								   </para>
							 | 
						|||
| 
								 | 
							
								   <example>
							 | 
						|||
| 
								 | 
							
								    <title>abilitare il caching</title>
							 | 
						|||
| 
								 | 
							
								    <programlisting role="php">
							 | 
						|||
| 
								 | 
							
								<![CDATA[
							 | 
						|||
| 
								 | 
							
								<?php
							 | 
						|||
| 
								 | 
							
								require('Smarty.class.php');
							 | 
						|||
| 
								 | 
							
								$smarty = new Smarty;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								$smarty->caching = true;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								$smarty->display('index.tpl');
							 | 
						|||
| 
								 | 
							
								?>
							 | 
						|||
| 
								 | 
							
								]]>
							 | 
						|||
| 
								 | 
							
								    </programlisting>
							 | 
						|||
| 
								 | 
							
								   </example>
							 | 
						|||
| 
								 | 
							
								   <para>
							 | 
						|||
| 
								 | 
							
								    Col caching abilitato, la chiamata alla funzione display('index.tpl')
							 | 
						|||
| 
								 | 
							
								    causa la normale generazione del template, ma oltre a questo salva
							 | 
						|||
| 
								 | 
							
								    una copia dell'output in un file (la copia in cache) nella <link 
							 | 
						|||
| 
								 | 
							
								    linkend="variable.cache.dir">$cache_dir</link>. Alla chiamata successiva
							 | 
						|||
| 
								 | 
							
								    di display('index.tpl'), verr<72> usata la copia in cache invece di 
							 | 
						|||
| 
								 | 
							
								    generare di nuovo il template.
							 | 
						|||
| 
								 | 
							
								   </para>
							 | 
						|||
| 
								 | 
							
								   <note>
							 | 
						|||
| 
								 | 
							
								    <title>Nota tecnica</title>
							 | 
						|||
| 
								 | 
							
								    <para>
							 | 
						|||
| 
								 | 
							
								     I file nella $cache_dir vengono chiamati con nomi simili al nome del
							 | 
						|||
| 
								 | 
							
								     template. Sebbene abbiano l'estensione ".php", in realt<6C> non sono
							 | 
						|||
| 
								 | 
							
								     script php eseguibili. Non editateli!
							 | 
						|||
| 
								 | 
							
								    </para>
							 | 
						|||
| 
								 | 
							
								   </note>
							 | 
						|||
| 
								 | 
							
								   <para>
							 | 
						|||
| 
								 | 
							
								    Ogni pagina in cache ha un tempo di vita limitato, determinato da
							 | 
						|||
| 
								 | 
							
								    <link linkend="variable.cache.lifetime">$cache_lifetime</link>. Il
							 | 
						|||
| 
								 | 
							
								    valore di default <20> 3600 secondi, cio<69> 1 ora. Dopo questo tempo, la
							 | 
						|||
| 
								 | 
							
								    cache viene rigenerata. E' possibile dare a file singoli il proprio
							 | 
						|||
| 
								 | 
							
								    tempo di scadenza impostando $caching = 2. Consultate la documentazione
							 | 
						|||
| 
								 | 
							
								    di <link linkend="variable.cache.lifetime">$cache_lifetime</link> per i dettagli.
							 | 
						|||
| 
								 | 
							
								   </para>
							 | 
						|||
| 
								 | 
							
								   <example>
							 | 
						|||
| 
								 | 
							
								    <title>impostare cache_lifetime per singolo file di cache</title>
							 | 
						|||
| 
								 | 
							
								    <programlisting role="php">
							 | 
						|||
| 
								 | 
							
								<![CDATA[
							 | 
						|||
| 
								 | 
							
								<?php
							 | 
						|||
| 
								 | 
							
								require('Smarty.class.php');
							 | 
						|||
| 
								 | 
							
								$smarty = new Smarty;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								$smarty->caching = 2; // la durata <20> per singolo file
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								// impostiamo il cache_lifetime per index.tpl a 5 minuti
							 | 
						|||
| 
								 | 
							
								$smarty->cache_lifetime = 300;
							 | 
						|||
| 
								 | 
							
								$smarty->display('index.tpl');
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								// impostiamo il cache_lifetime per home.tpl a 1 ora
							 | 
						|||
| 
								 | 
							
								$smarty->cache_lifetime = 3600;
							 | 
						|||
| 
								 | 
							
								$smarty->display('home.tpl');
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								// NOTA: l'impostazione seguente di $cache_lifetime non funzioner<65>
							 | 
						|||
| 
								 | 
							
								// con $caching = 2. La scadenza per home.tpl <20> stata gi<67> impostata
							 | 
						|||
| 
								 | 
							
								// a 1 ora, e non rispetter<65> pi<70> il valore di $cache_lifetime.
							 | 
						|||
| 
								 | 
							
								// La cache di home.tpl scadr<64> sempre dopo 1 ora.
							 | 
						|||
| 
								 | 
							
								$smarty->cache_lifetime = 30; // 30 seconds
							 | 
						|||
| 
								 | 
							
								$smarty->display('home.tpl');
							 | 
						|||
| 
								 | 
							
								?>
							 | 
						|||
| 
								 | 
							
								]]>
							 | 
						|||
| 
								 | 
							
								    </programlisting>
							 | 
						|||
| 
								 | 
							
								   </example>
							 | 
						|||
| 
								 | 
							
								   <para>
							 | 
						|||
| 
								 | 
							
								    Se <link linkend="variable.compile.check">$compile_check</link> <20> abilitato,
							 | 
						|||
| 
								 | 
							
								    tutti i file di template e di configurazione che sono coinvolti nel file
							 | 
						|||
| 
								 | 
							
								    della cache vengono verificati per vedere se sono stati modificati. Se qualcuno
							 | 
						|||
| 
								 | 
							
								    dei file ha subito una modifica dopo che la cache <20> stata generata, il file
							 | 
						|||
| 
								 | 
							
								    della cache viene rigenerato. Questo provoca un piccolo sovraccarico, quindi,
							 | 
						|||
| 
								 | 
							
								    per avere prestazioni ottimali, lasciate $compile_check a false.
							 | 
						|||
| 
								 | 
							
								   </para>
							 | 
						|||
| 
								 | 
							
								   <example>
							 | 
						|||
| 
								 | 
							
								    <title>abilitare $compile_check</title>
							 | 
						|||
| 
								 | 
							
								    <programlisting role="php">
							 | 
						|||
| 
								 | 
							
								<![CDATA[
							 | 
						|||
| 
								 | 
							
								<?php
							 | 
						|||
| 
								 | 
							
								require('Smarty.class.php');
							 | 
						|||
| 
								 | 
							
								$smarty = new Smarty;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								$smarty->caching = true;
							 | 
						|||
| 
								 | 
							
								$smarty->compile_check = true;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								$smarty->display('index.tpl');
							 | 
						|||
| 
								 | 
							
								?>
							 | 
						|||
| 
								 | 
							
								]]>
							 | 
						|||
| 
								 | 
							
								    </programlisting>
							 | 
						|||
| 
								 | 
							
								   </example>
							 | 
						|||
| 
								 | 
							
								   <para>
							 | 
						|||
| 
								 | 
							
								    Se <link linkend="variable.force.compile">$force_compile</link> <20> abilitato,
							 | 
						|||
| 
								 | 
							
								    i file della cache verranno sempre rigenerati. Di fatto questo disabilita
							 | 
						|||
| 
								 | 
							
								    il caching. $force_compile normalmente serve solo per scopi di debug, un
							 | 
						|||
| 
								 | 
							
								    modo pi<70> efficiente di disabilitare il caching <20> di impostare  <link
							 | 
						|||
| 
								 | 
							
								    linkend="variable.caching">$caching</link> = false (o 0.)
							 | 
						|||
| 
								 | 
							
								   </para>
							 | 
						|||
| 
								 | 
							
								   <para>
							 | 
						|||
| 
								 | 
							
								    La funzione <link linkend="api.is.cached">is_cached()</link> pu<70> essere
							 | 
						|||
| 
								 | 
							
								    usata per verificare se un template ha una cache valida oppure no. Se avete
							 | 
						|||
| 
								 | 
							
								    un template in cache che necessita di qualcosa come una lettura da un 
							 | 
						|||
| 
								 | 
							
								    database, potete usare questa funzione per saltare quella parte.
							 | 
						|||
| 
								 | 
							
								   </para>
							 | 
						|||
| 
								 | 
							
								   <example>
							 | 
						|||
| 
								 | 
							
								    <title>uso di is_cached()</title>
							 | 
						|||
| 
								 | 
							
								    <programlisting role="php">
							 | 
						|||
| 
								 | 
							
								<![CDATA[
							 | 
						|||
| 
								 | 
							
								<?php
							 | 
						|||
| 
								 | 
							
								require('Smarty.class.php');
							 | 
						|||
| 
								 | 
							
								$smarty = new Smarty;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								$smarty->caching = true;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								if(!$smarty->is_cached('index.tpl')) {
							 | 
						|||
| 
								 | 
							
								    // Non c'<27> cache disponibile, assegnamo le variabili qui.
							 | 
						|||
| 
								 | 
							
								    $contents = get_database_contents();
							 | 
						|||
| 
								 | 
							
								    $smarty->assign($contents);
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								$smarty->display('index.tpl');
							 | 
						|||
| 
								 | 
							
								?>
							 | 
						|||
| 
								 | 
							
								]]>
							 | 
						|||
| 
								 | 
							
								    </programlisting>
							 | 
						|||
| 
								 | 
							
								   </example>
							 | 
						|||
| 
								 | 
							
								   <para>
							 | 
						|||
| 
								 | 
							
								    Potete mantenere parti di una pagina dinamiche con la funzione del template
							 | 
						|||
| 
								 | 
							
								    <link linkend="language.function.insert">insert</link>. Diciamo che l'intera
							 | 
						|||
| 
								 | 
							
								    pagina pu<70> essere messa in cache eccetto un banner che viene visualizzato
							 | 
						|||
| 
								 | 
							
								    in fondo a destra nella page. Usando la funzione insert per il banner, potete
							 | 
						|||
| 
								 | 
							
								    tenere questo elemento dinamico all'interno del contenuto in cache. Consultate
							 | 
						|||
| 
								 | 
							
								    la documentazione su <link linkend="language.function.insert">insert</link> per
							 | 
						|||
| 
								 | 
							
								    dettagli ed esempi.
							 | 
						|||
| 
								 | 
							
								   </para>
							 | 
						|||
| 
								 | 
							
								   <para>
							 | 
						|||
| 
								 | 
							
								    Potete eliminare tutti i file della cache con la funzione <link
							 | 
						|||
| 
								 | 
							
								    linkend="api.clear.all.cache">clear_all_cache()</link>, o singoli
							 | 
						|||
| 
								 | 
							
								    file della cache (o gruppi di file) con la funzione <link
							 | 
						|||
| 
								 | 
							
								    linkend="api.clear.cache">clear_cache()</link>.
							 | 
						|||
| 
								 | 
							
								   </para>
							 | 
						|||
| 
								 | 
							
								   <example>
							 | 
						|||
| 
								 | 
							
								    <title>eliminare la cache</title>
							 | 
						|||
| 
								 | 
							
								    <programlisting role="php">
							 | 
						|||
| 
								 | 
							
								<![CDATA[
							 | 
						|||
| 
								 | 
							
								<?php
							 | 
						|||
| 
								 | 
							
								require('Smarty.class.php');
							 | 
						|||
| 
								 | 
							
								$smarty = new Smarty;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								$smarty->caching = true;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								// eliminiamo tutti i file della cache
							 | 
						|||
| 
								 | 
							
								$smarty->clear_all_cache();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								// eliminiamo solo la cache di index.tpl
							 | 
						|||
| 
								 | 
							
								$smarty->clear_cache('index.tpl');
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								$smarty->display('index.tpl');
							 | 
						|||
| 
								 | 
							
								?>
							 | 
						|||
| 
								 | 
							
								]]>
							 | 
						|||
| 
								 | 
							
								    </programlisting>
							 | 
						|||
| 
								 | 
							
								   </example>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								  </sect1>
							 | 
						|||
| 
								 | 
							
								  
							 | 
						|||
| 
								 | 
							
								<!-- Keep this comment at the end of the file
							 | 
						|||
| 
								 | 
							
								Local variables:
							 | 
						|||
| 
								 | 
							
								mode: sgml
							 | 
						|||
| 
								 | 
							
								sgml-omittag:t
							 | 
						|||
| 
								 | 
							
								sgml-shorttag:t
							 | 
						|||
| 
								 | 
							
								sgml-minimize-attributes:nil
							 | 
						|||
| 
								 | 
							
								sgml-always-quote-attributes:t
							 | 
						|||
| 
								 | 
							
								sgml-indent-step:1
							 | 
						|||
| 
								 | 
							
								sgml-indent-data:t
							 | 
						|||
| 
								 | 
							
								indent-tabs-mode:nil
							 | 
						|||
| 
								 | 
							
								sgml-parent-document:nil
							 | 
						|||
| 
								 | 
							
								sgml-default-dtd-file:"../../../../manual.ced"
							 | 
						|||
| 
								 | 
							
								sgml-exposed-tags:nil
							 | 
						|||
| 
								 | 
							
								sgml-local-catalogs:nil
							 | 
						|||
| 
								 | 
							
								sgml-local-ecat-files:nil
							 | 
						|||
| 
								 | 
							
								End:
							 | 
						|||
| 
								 | 
							
								vim600: syn=xml fen fdm=syntax fdl=2 si
							 | 
						|||
| 
								 | 
							
								vim: et tw=78 syn=sgml
							 | 
						|||
| 
								 | 
							
								vi: ts=1 sw=1
							 | 
						|||
| 
								 | 
							
								-->
							 |