Antigamente os sites eram mais estáticos, poucos deles apresentavam conteúdo dinâmico vindo de um banco de dados.
Mas hoje, é dificil ver um site estático e com isso a preocupação com o desempenho que antes era um luxo hoje é um requisito muito importante.
Pensando nisso, foram criados vários scripts de cache e o que vou apresentar hoje é o Cache Lite (PHP).
Download do Cache Lite
[sourcecode language=’php’] “cache/”,
“lifeTime” => 50
);
// Instancia o objeto Cache Lite
$objCache = new Cache_Lite($options);
// Teste se já existe um Cache válido
if ($quote = $objCache->get($id))
{
// Se existe ele exibe o conteudo que estava no cache
echo $quote;
// Adiciona no fim do conteúdo um indicador que veio do cache (só para exemplo)
echo ” [cached]”;
}
else
{
// Se ainda não existe um cache para esse conteudo, devemos criar o conteúdo, exibi-lo e depois armazena-lo no cache para que a próxima consulta não seja criada e sim retornada do cache
//Criamos o resultado
$quote = “Aprendendo como utilizar o cache”;
//Exibimos o resultado
echo $quote;
//Armazenamos no cache
$objCache->save($quote, $id);
}
?> [/sourcecode]
O resultado se o cache não existir seria:
[code=”js”]Aprendendo como utilizar o cache[/code]
E se ele existir seria
[code=”js”]Aprendendo como utilizar o cache [cached][/code]
Dessa forma, ele só criará o resultado final se ainda não existir em cache e também se não estiver com a validade vencida. Leia sobre o lifetime na legenda no final do artigo.
Mas esse exemplo foi de uma simples frase, e como seria para um conteúdo vindo do banco de dados?
Simples:
[sourcecode language=’php’] “cache/”,
“lifeTime” => 50
);
// Instancia o objeto Cache Lite
$objCache = new Cache_Lite($options);
// Teste se já existe um Cache válido
if ($quote = $objCache->get($id))
{
// Se existe ele exibe o conteudo que estava no cache
echo $quote;
// Adiciona no fim do conteúdo um indicador que veio do cache (só para exemplo)
echo ” [cached]”;
}
else
{
//esta função vai armazenar o resultado que vai pra tela do usuário
ob_start();
?>
Aprendendo como utilizar o cache
save($conteudo, $id);
// exibe o conteudo na tela do usuário
ob_end_flush();
}
?>[/sourcecode]
Viu como é simples?
Legenda:
- cacheDir :: pasta onde serão armazenados os arquivos gerados do cache
- lifetime :: tempo de vida do arquivo de cache em segundos. É necessário para que quando você pergunte se existe um cache válido ele retorne falso quando não existir o arquivo e também quando existir, porém com a validade vencida
- $id :: utilizei essa variável para armazenar o nome do arquivo do cache. É interessante utilizar essa função em conjunto com a md5() para que o nome do arquivo não contenha caracteres inválidos como a interrogação ? ou barras / que são normais em urls.
Algum erro que eu tenha cometido ou uma sugestão de melhoria avise pelo comentário ok?
Abraços!