Cache no PrestaShop: Smarty, Symfony, CCC e cache de página, o que ativar
O PrestaShop tem várias caches que não se parecem umas com as outras. Perceber o que guarda cada uma evita tanto a lentidão como os erros de «não vejo as minhas alterações».
Quando alguém diz «limpei a cache e está igual», quase sempre limpou uma das várias caches que uma loja PrestaShop tem. Estas são as camadas, de dentro para fora.
1. OPcache (PHP)
Guarda o código PHP já compilado. Não afeta os dados, apenas a velocidade. Sempre ativada em produção.
2. Cache do Symfony
Em var/cache/prod: o contentor de serviços, as rotas, os templates Twig do back office. Regenera-se sozinha quando é limpa. Se instalar um módulo e o ecrã dele der erro, limpar esta cache é a primeira coisa a fazer.
3. Cache do Smarty
Compila os templates do front e, opcionalmente, guarda o HTML de alguns blocos. Em Parâmetros avançados > Desempenho:
- Compilação: «Não recompilar» em produção.
- Cache: ativada.
4. CCC: combinar, comprimir e guardar em cache
Junta os CSS e os JS do tema e dos módulos em poucos ficheiros. Menos pedidos, página mais rápida. Mas se um módulo acrescentar scripts de forma pouco ortodoxa, algo pode partir-se: ative-o e reveja o carrinho e o checkout.
5. Cache de dados (Redis, Memcached, APCu)
Guarda resultados de consultas à base de dados. Útil em lojas grandes, mas delicada: se a cache não for invalidada quando os dados mudam, vai ver informação antiga. Contamos tudo em pormenor no artigo sobre Redis.
6. Cache de página completa
Guarda a página inteira já gerada e serve-a sem executar o PrestaShop (LiteSpeed Cache, Varnish, módulos de cache de página). É a que mais acelera e a que exige mais cuidado: carrinho, preços por grupo de cliente, stock e mensagens personalizadas não podem sair de uma página guardada para outro visitante.
Ordem para limpar as caches
- Cache de página (se existir).
- Cache de dados.
- Desempenho > Limpar a cache (Smarty e Symfony).
- Cache do navegador (recarregamento forçado).