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