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.