Criando cache de páginas com CodeIgniter

Criando cache de páginas com CodeIgniter

O cache de páginas é muito importante para que uma página possa ser carregada mais rapidamente. Se o usuário acessar a página pela primeira vez, ela ainda não estará no cache e poderá demorar um pouco pra carregar, mas nas próximas visitas, o carregamento será mais rápido.

No CodeIgniter os arquivos de cache são armazenados no diretório application/cache. Com poucas linhas de código você pode montar toda a estrutura de cache da aplicação, determinando por quanto tempo o cache será armazenado, até ser atualizado. Também tem a possibilidade de remover e atualizar esse cache a qualquer momento, e de forma independente, para cada página.

Ativando o cache

Para ativar o cache você deve informar a linha a seguir no controller responsável por carregar a view que você deseja armazenar no cache.

$this->output->cache($minutos);

$minutos é o tempo, em minutos que a página deve permanecer no cache.

Desativando o cache

O cache pode ser desativado e removido a qualquer momento, de duas maneiras:

Para a URI atual

$this->output->delete_cache();

Para uma rota específica

$this->output->delete_cache('rota/a/ter/o/cache/removido');

Vejamos um exemplo simples de aplicação do cache

Crie um controller chamado Base contendo 2 métodos: no primeiro é criado o cache, que irá durar 10 minutos e é exibida uma view simples, e no segundo, o cache da página acessada pelo primeiro método é removido e nada é exibido.

Como no método Index chamamos uma view, será necessário criá-la. Para isso crie o arquivo pagina_em_cache.php dentro de application/views com o conteúdo abaixo:

Para tornar o funcionamento efetivo, vamos criar 2 rotas para poder acessar pelo browser. Abra o arquivo routes.php e atualize o conteúdo, inserindo as 2 rotas abaixo:

$route['cache'] = 'Base'; 
$route['remover-cache'] = 'Base/Remove_cache';

Feito isso, ao acessar no browser a url http://localhost/exemplo/cache verá a página criada, e ao olhar o diretório application/cache verá que um arquivo foi criado lá. Se acessar na sequência http://localhost/exemplo/remover-cache, imediatamente o arquivo será removido do diretório application/cache.

=> A url a ser acessada pode variar conforme a sua configuração local, mas a rota será a mesma

Até a próxima!