Files
smarty/docs/pt_BR/programmers/caching/caching-setting-up.xml

163 lines
5.6 KiB
XML
Raw Normal View History

2004-04-13 11:47:32 +00:00
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="caching.setting.up">
<title>Configurando Caching</title>
<para>
A primeira coisa a fazer <20> habilitar o caching. Isso <20> feito pela configura<72><61>o <link
linkend="variable.caching">$caching</link> = true (or 1.)
</para>
<example>
<title>Habilitando Caching</title>
<programlisting>
require('Smarty.class.php');
$smarty = new Smarty;
$smarty->caching = true;
$smarty->display('index.tpl');</programlisting>
</example>
<para>
Com caching habilitado, a chamada para a fun<75><6E>o display('index.tpl') ir<69> trazer
o template como usual, mas tamb<6D>m
salva uma c<>pia disso para o arquivo de sa<73>da (uma c<>pia de cache) in the <link linkend="variable.cache.dir">$cache_dir</link>.
Na pr<70>xima chamada de display('index.tpl'), a c<>pia em cache ser<65> usada
ao inv<6E>s de trazer novamente o template.
</para>
<note>
<title>Notas T<>cnicas</title>
<para>
Os arquivos no $cache_dir s<>o nomeados com similaridade ao nome do arquivo de template.
Embora eles terminem com a extens<6E>o ".php", eles n<>o s<>o realmente scripts execut<75>veis de php.
N<>o edite estes arquivos!
</para>
</note>
<para>
Cada p<>gina em cache tem um per<65>odo de tempo limitado determinado por <link
linkend="variable.cache.lifetime">$cache_lifetime</link>. O padr<64>o do valor <20>
3600 segundos, ou 1 hora. Ap<41>s o tempo expirar, o cache <20> regerado.
<09> poss<73>vel dar tempos individuais para caches com seu pr<70>prio tempo
de expira<72><61>o pela configura<72><61>o $caching = 2. Veja a documenta<74><61>o em <link
linkend="variable.cache.lifetime">$cache_lifetime</link> para detalhes.
</para>
<example>
<title>Configurando cache_lifetime por cache</title>
<programlisting>
require('Smarty.class.php');
$smarty = new Smarty;
$smarty->caching = 2; // lifetime is per cache
// set the cache_lifetime for index.tpl to 5 minutes
$smarty->cache_lifetime = 300;
$smarty->display('index.tpl');
// set the cache_lifetime for home.tpl to 1 hour
$smarty->cache_lifetime = 3600;
$smarty->display('home.tpl');
// NOTE: the following $cache_lifetime setting will not work when $caching = 2.
// The cache lifetime for home.tpl has already been set
// to 1 hour, and will no longer respect the value of $cache_lifetime.
// The home.tpl cache will still expire after 1 hour.
$smarty->cache_lifetime = 30; // 30 seconds
$smarty->display('home.tpl');</programlisting>
</example>
<para>
Se <link linkend="variable.compile.check">$compile_check</link> est<73> habilitado,
cada arquivo de template e arquivo de configura<72><61>o que est<73> envolvido com o arquivo em cache
<09> checado por modifica<63><61>es. Se algum destes arquivos foi modificado desde que o <20>ltimo cache
foi gerado, o cache <20> imediatamente regerado.
Isso <20> ligeiramente uma forma de optimiza<7A><61>o de performance de overhead, deixe $compile_check setado para false.
</para>
<example>
<title>Habilitando $compile_check</title>
<programlisting>
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> est<73> habilitado,
os arquivos de cache ir<69>o sempre ser regerados. Isso <20> efetivamente desativar caching.
$force_compile <20> usualmente para prop<6F>sitos de debug somente, um caminho mais
eficiente de desativar caching <20> setar o <link
linkend="variable.caching">$caching</link> = false (ou 0.)
</para>
<para>
A fun<75><6E>o <link linkend="api.is.cached">is_cached()</link>
pode ser usada para testar se um template tem um cache v<>lido ou n<>o.
Se voc<6F> tem um template com cache que requer alguma coisa como um retorno do banco de dados,
voc<6F> pode usar isso para pular este processo.
</para>
<example>
<title>Usando is_cached()</title>
<programlisting>
require('Smarty.class.php');
$smarty = new Smarty;
$smarty->caching = true;
if(!$smarty->is_cached('index.tpl')) {
// No cache available, do variable assignments here.
$contents = get_database_contents();
$smarty->assign($contents);
}
$smarty->display('index.tpl');</programlisting>
</example>
<para>
Voc<6F> pode deixar partes da sua p<>gina din<69>mica com a fun<75><6E>o de template <link
linkend="language.function.insert">insert</link>.
Vamos dizer que sua p<>gina inteira pode ter cache exceto para um banner que <20>
mostrado abaixo do lado direito da sua p<>gina. Usando uma fun<75><6E>o insert para o banner,
voc<6F> pode deixar esse elemento din<69>mico dentro do conte<74>do de cache. Veja a documenta<74><61>o
em <link linkend="language.function.insert">insert</link> para
detalhes e exemplos.
</para>
<para>
Voc<6F> pode limpar todos os arquivos de cache com a fun<75><6E>o <link
linkend="api.clear.all.cache">clear_all_cache()</link>, ou
arquivos de cache individuais (ou grupos) com a fun<75><6E>o <link
linkend="api.clear.cache">clear_cache()</link>.
</para>
<example>
<title>Limpando o cache</title>
<programlisting>
require('Smarty.class.php');
$smarty = new Smarty;
$smarty->caching = true;
// clear out all cache files
$smarty->clear_all_cache();
// clear only cache for 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
-->