Caching é usado para aumentar a velocidade de chamada para display() ou fetch() salvando isso num arquivo de saída. Se há uma versão de cache disponível para a chamada, isso é mostrado ao invés de regerar a saída de dados. Caching pode fazer coisas tremendamente rápidas, especialmente templates com longo tempo computacional. Desde a saída de dados do display() ou fetch() está em cache, um arquivo de cache poderia ser composto por diversos arquivos de templates, arquivos de configuração, etc.
Desde que templates sejam dinâmicos, é importante isso ter cuidado com o que você está fazendo cache e por quanto tempo. Por exemplo, se você está mostrando a página principal do seu website na qual as alterações de conteúdo são muito frequentes, isso funciona bem para cache dessa por uma hora ou mais. Um outro modo, se você está mostrando uma página com um mapa do tempo contendo novas informações por minuto, não faz sentido fazer cache nesta página.
A primeira coisa a fazer é habilitar o caching. Isso é feito pela configuração $caching = true (or 1.)
Com caching habilitado, a chamada para a função display('index.tpl') irá trazer o template como usual, mas também salva uma cópia disso para o arquivo de saída (uma cópia de cache) in the $cache_dir. Na próxima chamada de display('index.tpl'), a cópia em cache será usada ao invés de trazer novamente o template.
Notas Técnicas: Os arquivos no $cache_dir são nomeados com similaridade ao nome do arquivo de template. Embora eles terminem com a extensão ".php", eles não são realmente scripts executáveis de php. Não edite estes arquivos!
Cada página em cache tem um período de tempo limitado determinado por $cache_lifetime. O padrão do valor é 3600 segundos, ou 1 hora. Após o tempo expirar, o cache é regerado. É possível dar tempos individuais para caches com seu próprio tempo de expiração pela configuração $caching = 2. Veja a documentação em $cache_lifetime para detalhes.
Se $compile_check está habilitado, cada arquivo de template e arquivo de configuração que está envolvido com o arquivo em cache é checado por modificações. Se algum destes arquivos foi modificado desde que o último cache foi gerado, o cache é imediatamente regerado. Isso é ligeiramente uma forma de optimização de performance de overhead, deixe $compile_check setado para false.
Se $force_compile está habilitado, os arquivos de cache irão sempre ser regerados. Isso é efetivamente desativar caching. $force_compile é usualmente para propósitos de debug somente, um caminho mais eficiente de desativar caching é setar o $caching = false (ou 0.)
A função is_cached() pode ser usada para testar se um template tem um cache válido ou não. Se você tem um template com cache que requer alguma coisa como um retorno do banco de dados, você pode usar isso para pular este processo.
Você pode deixar partes da sua página dinâmica com a função de template insert. Vamos dizer que sua página inteira pode ter cache exceto para um banner que é mostrado abaixo do lado direito da sua página. Usando uma função insert para o banner, você pode deixar esse elemento dinâmico dentro do conteúdo de cache. Veja a documentação em insert para detalhes e exemplos.
Você pode limpar todos os arquivos de cache com a função clear_all_cache(), ou arquivos de cache individuais (ou grupos) com a função clear_cache().