Usando Fragments no Kohana
Fragments é um recurso muito bacana que está disponível no framework Kohana desde a versão 3.0, que permite de forma simples e rápida fazer cache de alguma view ou trecho HTML.
Basicamente você pode usar Fragments quando o tempo de leitura do fragmento for menor do que o tempo de geração do mesmo contéudo. Isso pode ser muito útil naqueles casos onde você tem um menu ou parte do seu layout que pode ser processada uma única vez e sempre ser carregada de um cache em vez de ser processada a view a cada requisição.
Como usar
Vamos usar o exemplo do menu:
[php]// Cache do fragmento por 10 minutos
if (!Fragment::load(‘viewMenu’, Date::MINUTE * 10))
{
// Tudo até a chamada Fragment::save() será gravado como fragmento
echo html::anchor(‘inicio’,’Início’);
echo html::anchor(‘kohana’,’Kohana’);
echo html::anchor(‘plugins’,’Plugins’);
echo html::anchor(‘contato’,’Contato’);
// Salva o fragmento em cache
Fragment::save();
}[/php]
O código já comentado fica bem mais fácil do que explicar :)
Simplificando, funciona da seguinte forma:
- Fragment::load() tenta carregar o fragmento do cache
- Se não encontrar retornará false, e ficará aguardando o trecho a ser guardado neste fragmento até a chamada Fragment::save()
- O padrão de armazenamento de cada fragmento é 30 segundos, mas você pode especificar um timeout na chamada Fragment::load()
- Você pode forçar um fragmento ser excluído usando Fragment::delete() ou usando timeout como zero
Não é interessante usar Fragments para guardar variáveis, objetos ou ainda resultados de banco de dados. Para objetos mais complexos o módulo Cache é muito mais robusto e eficiente.
É simples, é Kohana!
É por isso que eu gosto :)