
Criando cache de páginas com CodeIgniter
12/12/2019O cache de páginas é muito importante para que uma página possa ser carregada mais rapidamente e você possa otimizar sua aplicação. 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');
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.
<?php
class Base extends CI_Controller {
public function Index() {
$this->output->cache(10);
$this->load->view('pagina_em_cache');
}
public function Remove_cache() {
$this->output->delete_cache('cache');
}
}
?>
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:
<!DOCTYPE html>
<html lang="pt_BR">
<head>
<meta charset = "utf-8">
<title>Criando cache de páginas com CodeIgniter</title>
</head>
<body>
<h1>Essa página vai ficar no cache por 10 minutos.</h1>
</body>
</html>
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 (ou a que representar o acesso ao exemplo no seu ambiente) 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 (ou a que representar o acesso ao exemplo no seu ambiente), imediatamente o arquivo será removido do diretório application/cache
.
Até a próxima!