Cache

Algumas tarefas ou processamento de dados podem consumir muita CPU ou levar vários segundos para serem concluídas. Quando esse é o caso, é comum armazenar em cache os dados recuperados por um tempo para que possam ser recuperados com maior velocidade em solicitações subsequentes dos mesmos dados.

Com isso, o Luna fornece uma opção prática para armazenamento de cache do resultado de rotas, a definição do cache deve ser realizada na criação da rota:

$router->get('/', [
    'cache' => 10000,
    function($request, $response) {
        return Pages\Example::getPage($request, $response);
    }
]);

O tempo de cache é definido em milisegundos.

No exemplo, o cache será armazenado por 10 segundos, nesse período toda requisição trará o mesmo resultado e após um novo intervalo se inicia.

As configurações de cache podem ser definidas no arquivo .env:

Configuração
Descrição

CACHE_TIME

Valor padrão de cache

CACHE_DIR

Diretório de armazenamento do cache

ALLOW_NO_CACHE_HEADER

Permitir o header Cache-Control: no-cache

O valor de CACHE_TIME é definido como tempo de cache (também em milisegundos) quando o cache da rota for definido como true:

$router->get('/', [
    'cache' => true,
    function($request, $response) {
        return Pages\Example::getPage($request, $response);
    }
]);

O uso de cache: true facilita para utilizar um valor padrão de cache e modifica-lo com praticidade se necessário.

Diretório de cache

Os caches são armazenados em arquivos no diretório ./cache por padrão, caso deseje alterar o endereço para um diretório do sistema operacional utilize um diretório absoluto.

Last updated