mirror of
				https://github.com/smarty-php/smarty.git
				synced 2025-10-31 12:21: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 | |||
|  | --> |