Aktivieren Sie Shopware Caching weit über 20 Sekunden hinaus

Viel Verkehr in Ihrem Geschäft? Haben Sie sich schon immer gefragt, warum Ihre Kategorieseiten langsam sind, außer in den ersten 20 Sekunden? Ja, ich auch. Da ich also vermutete, dass die Shopware-Dokumentation darüber schweigt, begann ich intuitiv im Code zu suchen und fand dies hier drin:

<?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;
    }
}

Aber gibt es eine Möglichkeit, den Wert für die Cache-Ungültigkeit per Konfiguration zu ändern? Nun, ja, irgendwie schon, in der Konfigurationsdatei:

config/packages/shopware.yaml

Sie können den Parameter shopware.cache.invalidation.http_cache setzen oder besser gesagt zurücksetzen.

shopware:
    cache:
        invalidation:
            http_cache: []

Und um die volle Wirkung zu sehen, müssen Sie in Ihrer .env Datei den Parameter: SHOPWARE_HTTP_CACHE_ENABLED=1

Aber natürlich müssen Sie auch Ihre Anforderungen überprüfen. Wenn Sie unterschiedliche Layouts für verschiedene Kundengruppen haben, kann die Zwischenspeicherung mit Ihren Anforderungen kollidieren. Nach einer Anmeldung oder einem Produkt im Einkaufswagen ändert sich der Kontext, und es kann zu Problemen aufgrund einer fehlenden Cache-Invalidierung kommen.

Wahrscheinlich möchten Sie also etwas wie dieses hier in Ihre config/packages/cacheconfig.yaml einfügen, das Sie erstellen und die oben erwähnte Einstellung des cache.invalidation.http_cache-Parameters verwerfen sollten, da die Standardeinstellung von Shopware die Ausnahme für das http-Caching des abgelegten Warenkorbs und der angemeldeten Benutzersitzungen enthält.

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

Teilen:

Facebook
LinkedIn
WhatsApp

Sie sind Entwickler und auf der Suche nach Shopware-Projekten?

Wir stellen ein

Inhaltsübersicht

Auf Taste
Verwandte Beiträge

Wozu dienen die Strukturen in Shopware 6?

Strukturen (Structs) in Shopware 6 sind Teil der Programmierarchitektur, die speziell für die Datenverarbeitung entwickelt wurde. Hier finden Sie einen detaillierten Überblick über ihren Zweck und ihre Funktionen: