Cache leeren

Prüfen Sie als Template-Entwickler oder Administrator, ob Ihre Änderungen korrekt im OXID eShop angezeigt werden.

Änderungen an Templates, Konfigurationen oder Modulen werden oft erst nach dem Leeren des Caches korrekt im Shop übernommen. Deshalb ist das Leeren des Caches erforderlich.

Mit dem OXID Admintools-Modul stehen Ihnen dazu zwei komplementäre Zugriffswege zur Verfügung:

  • Manuell: Über eine Schaltfläche im Admin-Backend – einfach und ohne Kommandozeile

  • Über die OXAPI: Als Remotezugriff per GraphQL-basierter API

Löschen Sie gezielt nur das, was für die aktuelle Aufgabe notwendig ist, ohne andere Systeme zu beeinträchtigen.

Beachten Sie, dass der Shop mit leeren Caches langsamer reagieren kann, bis die Caches wieder aufgefüllt sind.

Cache-Bereich

Aktion

Use Case (wann löschen?)

Template-Cache

Entfernt kompilierte Twig-Template-Dateien.

Nach Änderungen an .tpl-Dateien, Theme-Overrides oder CMS-Elementen.

Interner Cache

Leert den internen Cache-Mechanismus des OXID eShops.

Nach Änderungen an Konfigurationen oder Sprachdateien.

Container-Cache

Leert den Cache des Dependency-Injection-Containers (basiert auf Symfony).

Nach Änderungen am Dependency-Injection-Setup, z. B. neuen Services oder Events.

Module-Caches

Leert Caches, die mit installierten Modulen zusammenhängen.

Nach Änderung eines Moduls (bei Aktivierung oder Deaktivierung eines Moduls wird der Module-Cache automatisch geleert).

Gesamter Cache

Führt einen vollständigen Cache-Reset durch (kombiniert alle oben genannten Caches).

Bei schwerwiegenden Fehlern oder nach größeren Updates.

Cache manuell leeren

Leeren Sie einzelne Caches oder alle Caches des OXID eShops manuell.

Vorgehen

  1. Wählen Sie Service ‣ Tools.

  2. Legen Sie fest, ob Sie den gesamten Cache oder einzelne Bereiche löschen wollen (Abb.: Cache leeren, Pos. 1).

  3. Wählen Sie die Schaltfläche Leeren.

Cache leeren

Abb.: Cache leeren

Resultat

Es erscheint eine Meldung, dass das Leeren des Caches über die Shop-Logik angestoßen wurde (Abb.: Cache leeren: Resultat, Pos. 1).

Note

Das System prüft nicht, ob der Cache tatsächlich geleert ist.

Sollte die Meldung „Cache-Leerung fehlgeschlagen“ erscheinen, versuchen Sie das Leeren des Caches erneut anzustoßen. Besteht das Problem weiterhin, suchen Sie nach der Ursache. Sollte ein Modul oder eine andere Komponente verantwortlich sein, geben Sie Rückmeldung an den OXID Support oder das Produktmarketing. Verbesserungsvorschläge sind willkommen.

Cache leeren: Resultat

Abb.: Cache leeren: Resultat

Cache per OXAPI leeren

Leeren Sie automatisch einzelne Caches oder alle Caches des OXID eShops über die OXAPI (GraphQL API).

Voraussetzungen

  • Um Caches über die GraphQL-API zu leeren, ist der Benutzer authentifiziert und hat die erforderlichen Berechtigungen:

    • Der Autorisierungs-Header mit Bearer-Token enthält einen gültige OXAPI-JWT-Token, der die nötigen Rechte hat.

    • Der Benutzer ist Mitglied der Benutzergruppe gqladmintoolscache.

Vorgehen

  1. Stellen Sie sicher, dass Sie eine kompatible Version von oxid-esales/graphql-base installiert haben.

    Installieren Sie z. B. die 11.x-Version mit folgenden Befehlen:

    composer require oxid-esales/graphql-base ^11.0.0
    ./vendor/bin/oe-eshop-doctrine_migration migrations:migrate oe_graphql_base
    ./vendor/bin/oe-console oe:module:activate oe_graphql_base
    
  2. Implementieren Sie die folgenden GraphQL-Abfragen:

    Query

    Funktion

    clearTemplateCache

    Leert den Template-bezogenen Cache.

    clearInternalCache

    Leert den internen System-Cache.

    clearContainerCache

    Leert den Cache des DI-Containers (Symfony).

    clearModuleCaches

    Leert die Caches installierter Module.

    clearCaches

    Leert alle oben genannten Caches gleichzeitig.

Beispiel

Mit folgender GraphQL-Abfrage leeren Sie alle Caches:

query {
   clearCaches
}