So leeren Sie den Cache im Shopware App System automatisch
Es kann vorkommen, dass Sie den Cache in der Shopware-App automatisch leeren müssen. Dies kann beispielsweise der Fall sein, wenn ein Update durchgeführt wird oder Cache-Probleme die Leistung Ihres Shops beeinträchtigen. Standardmäßig erfordert Shopware einen manuellen Vorgang zum Leeren des Caches. Dies kann jedoch mithilfe von App-Berechtigungen und API-Aufrufen automatisiert werden.
Schritte zum automatischen Leeren des Cache im Shopware-App-System
Um die automatische Cache-Löschung in deiner Shopware-App zu implementieren, folge diesen Schritten:
Schritt 1. Berechtigung hinzufügen fürmanifest.xml
In der manifest.xml
Datei deiner App musst du die entsprechende Berechtigung hinzufügen, die es der App erlaubt, den Cache zu leeren. Dies geschieht durch die Anforderung der system:cache:info
Berechtigung.
Hier ist ein Beispiel, wie diese Berechtigung zur manifest.xml
Datei hinzugefügt wird:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <?xml version="1.0" encoding="UTF-8"?> <manifest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/shopware/shopware/trunk/src/Core/Framework/App/Manifest/Schema/manifest-2.0.xsd"> <meta> <!-- Your meta information here --> </meta> <permissions> <read>product</read> <create>product</create> <update>product</update> <delete>order</delete> <!-- Since version 6.4.12.0 your app can request additional non-CRUD privileges--> <permission>system:cache:info</permission> </permissions> </manifest> |
Im obigen XML-Code:
- Wir fügen
<permission>system:cache:info</permission>
den Abschnitt hinzu<permissions>
, um der App die Ausführung cachebezogener Vorgänge zu ermöglichen.
Dadurch kann die App mithilfe der clearAllCache
API-Funktion den Cache automatisch leeren.
Schritt 2. Erstellen Sie eine Funktion zum Aufrufen der Admin-API zum Leeren des Cache
In Ihrem serverseitigen Code müssen Sie eine Funktion implementieren, die den Cache-Löschvorgang über die Admin-API von Shopware auslöst. Mit dieser DELETE
Methode können Sie den Cache leeren.
Hier ist ein Beispiel für eine Funktion, die Ihrem Servercode hinzugefügt werden kann:
1 2 3 4 5 6 7 8 9 10 11 12 13 | public function clearAllCache(): void { $request = $this->factory->createRequest('DELETE', sprintf( '%s/api/_action/cache', $this->shopUrl ))->withHeader('Content-Type', 'application/json'); $response = $this->httpClient->sendRequest($request); if ($response->getStatusCode() !== 204) { throw new Exception('Failed to clear cache: ' . $response->getBody()); } } |
Im obigen Code:
- Die
clearAllCache()
Funktion sendet eineDELETE
Anfrage an den/api/_action/cache
Endpunkt der Shopware Admin API, um den Cache zu leeren. - Es prüft den Antwortstatuscode, um sicherzustellen, dass der Cache erfolgreich geleert wurde. Wenn der Antwortcode nicht
204
(Kein Inhalt) lautet, wird eine Ausnahme mit einer Fehlermeldung ausgelöst.
Schritt 3. Cache-Löschung automatisieren
Nachdem Sie nun die Berechtigung eingerichtet und den API-Aufruf erstellt haben, können Sie diese Funktion überall dort integrieren, wo Sie in Ihrer Anwendung eine Cache-Löschung benötigen. Sie können sie bei bestimmten Ereignissen wie Updates, Bereitstellungen oder anderen relevanten Systemprozessen auslösen.
Abschluss
Indem Sie Ihrer Datei die richtige Berechtigung hinzufügen und eine Funktion zum Aufrufen der Admin-API erstellen, können Sie den Cache im Shopware-App-System automatisch leeren. Dadurch wird sichergestellt, dass Ihre Shopware-App reibungslos funktioniert und verhindert, dass Cache-bezogene Probleme Ihren Shop beeinträchtigen. Wenn Sie technischen Support benötigen, können Sie sich gerne an unser manifest.xml
Shopware Agency- Supportteam wenden, um weitere Hilfe zu erhalten.
Recent help desk articles
Grüße! Ich bin Aneesh Sreedharan, CEO von 2Hats Logic Solutions. Bei 2Hats Logic Solutions widmen wir uns der Bereitstellung von technischem Fachwissen und der Lösung Ihrer Probleme in der Welt der Technologie. Unsere Blog-Seite dient als Ressource, in der wir Einblicke und Erfahrungen teilen und wertvolle Perspektiven auf Ihre Fragen bieten.