Habilite o Shopware Caching para muito além de 20 segundos

Há muito tráfego em sua loja? Sempre se perguntou por que suas páginas de categoria são lentas, exceto nos primeiros 20 segundos? Sim, eu também. Então, como eu suspeitava que a documentação do Shopware não falaria sobre isso, comecei a pesquisar intuitivamente no código e encontrei isso aqui:

<?php declare(strict_types=1);
// vendor/shopware/core/Framework/Adapter/Cache/InvalidateCacheTask.php

namespace Shopware\Core\Framework\Adapter\Cache;

use Shopware\Core\Framework\MessageQueue\ScheduledTask\ScheduledTask;
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;

class InvalidateCacheTask extends ScheduledTask
{
    public static function getTaskName(): string
    {
        return 'shopware.invalidate_cache';
    }

    public static function getDefaultInterval(): int
    {
        return 20;
    }

    public static function shouldRun(ParameterBagInterface $bag): bool
    {
        return $bag->get('shopware.cache.invalidation.delay') > 0;
    }
}

Mas existe uma maneira de alterar o valor de invalidação do cache por meio da configuração? Bem, sim, mais ou menos, no arquivo de configuração:

config/packages/shopware.yaml

Você pode definir o parâmetro shopware.cache.invalidation.http_cache ou, melhor ainda, pode redefini-lo.

shopware:
    cache:
        invalidation:
            http_cache: []

E para vê-lo em pleno vigor, você precisa definir em seu arquivo .env o parâmetro: SHOPWARE_HTTP_CACHE_ENABLED=1

Mas é preciso dizer que você também precisa verificar seus requisitos. Se você tiver layouts diferentes para grupos de clientes diferentes, o armazenamento em cache poderá interferir em seus requisitos. Após um login ou um produto no carrinho, o contexto muda e você pode ter problemas devido à falta de invalidação do cache.

Portanto, provavelmente você desejará colocar algo como isso aqui no seu config/packages/cacheconfig.yaml, que deve ser criado e descartar a configuração do parâmetro cache.invalidation.http_cache mencionada acima, pois a configuração padrão do Shopware inclui a exceção para o armazenamento em cache http das sessões do carrinho arquivado e do usuário conectado.

framework:
  cache:
    app: cache.adapter.filesystem
    pools:
      cache.property_access:
        adapter: cache.app
      cache.serializer:
        adapter: cache.app
      cache.annotations:
        adapter: cache.app
      cache.property_info:
        adapter: cache.app
      cache.messenger:
        adapter: cache.app
      cache.object:
        default_lifetime: 86400
        adapter: cache.app
        tags: cache.tags
      cache.http:
        default_lifetime: 86400
        adapter: cache.app
        tags: cache.tags
      cache.tags:
        default_lifetime: 7200
        adapter: cache.app

shopware:
  cache:
    invalidation:
      delay: 0
      count: 150
  cart:
    expire_days: 21

Compartilhe:

Facebook
LinkedIn
WhatsApp

Você é um desenvolvedor e está procurando por projetos da Shopware?

Contratamos

Índice

Na chave
Publicações relacionadas

Shopware vs. Prestashop, quem é melhor?

Ao comparar o Shopware e o PrestaShop, é importante entender que ambas as plataformas oferecem recursos exclusivos e atendem a diferentes necessidades. Aqui está uma comparação com base em vários fatores:

Shopware vs. Magento, quem é melhor?

Ao comparar o Shopware e o Magento, é importante considerar vários fatores, pois ambas as plataformas têm seus pontos fortes exclusivos e atendem a diferentes necessidades. Aqui está um detalhamento:

Para que servem os Structs no Shopware 6?

As estruturas no Shopware 6 fazem parte de sua arquitetura de programação, projetada especificamente para o manuseio de dados. Aqui está uma visão geral detalhada de sua finalidade e funcionalidade: