🌙
Luna - Framework PHP
  • Conheça o Luna
  • Notas de atualizações
  • Iniciando
    • Instalação
    • Configuração
    • Exemplo
  • O básico
    • Routers
    • Middlewares
    • Cache
    • Controllers
    • Services
    • Helpers
    • Views
    • Flash Messages
    • Components
    • Pagination
    • Database
    • Models
    • SEO
    • Environment
Powered by GitBook
On this page
  1. O básico

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.

PreviousMiddlewaresNextControllers

Last updated 2 years ago