Plugin de cache


1Apresentação

O Temma pode gerenciar automaticamente o cache das páginas geradas pela visão Smarty.


2Configuração

Este plugin deve ser um dos primeiríssimos pré-plugins na cadeia de execução.

De fato, se a página solicitada já estiver em cache, o plugin a retornará e interromperá o processamento. Portanto, não há motivo para executar pré-plugins que só seriam úteis caso a página precisasse ser gerada.

Por outro lado, um plugin de autenticação usado para verificar se o usuário tem permissão para acessar a página (por exemplo) deve ser colocado antes na cadeia de execução.

Você precisará então adicionar uma diretiva no arquivo etc/temma.php (veja a documentação de configuração):

<?php

return [
    'plugins' => [
        // lista de pré-plugins
        '_pre' => [
            '\Temma\Plugins\Cache'
        ]
    ]
];

3Configuração avançada

É possível definir parâmetros de configuração adicionais, especificando-os em uma seção de configuração estendida:

<?php

return [
    'plugins' => [
        '_pre' => [
            '\Temma\Plugins\Cache'
        ]
    ],
    'x-temma-cache' => [
        // usado para definir a fonte de dados (veja "dataSources")
        // por padrão, usa a fonte chamada "cache"
        'source' => 'memcache',
        // lista de URLs estritas a serem colocadas em cache
        'url' => [
            '/articles/list',
            '/pages/presentation',
        ],
        // lista de prefixos de URL a serem colocados em cache
        'prefix' => [
            '/documentation/',
            '/legal/',
        ]
    ]
];
  • source: Nome da fonte de dados a ser usada para armazenar as páginas em cache. Se este valor não for preenchido, o plugin procurará uma fonte chamada cache.
  • url: Lista de URLs estritas que podem ser colocadas em cache. Neste exemplo, as páginas /articles/list e /pages/presentation serão colocadas em cache.
  • prefix: Lista de prefixos de URL que podem ser colocados em cache. Neste exemplo, todas as páginas cuja URL começa com /documentation/ ou /legal/ serão colocadas em cache.

Quando as diretivas url e prefix não estão definidas, todas as páginas são passíveis de serem colocadas em cache.


4Variável de template

Quando o plugin detecta que a página acessada pode ser colocada em cache, ele define uma variável de template _temmaCacheable, atribuindo a ela o valor booleano true. Essa variável será usada pela visão Smarty, para colocar em cache o código HTML gerado antes de enviá-lo ao navegador.

É fortemente recomendado não modificar esse valor. No entanto, você pode acessá-lo em modo de leitura.