Zum Inhalt springen

CLI-Befehle

P2Lab Cache fügt Symfony-Konsolenbefehle hinzu, die Sie über bin/console aufrufen können. Alle Befehle verhalten sich wie der Rest der Shopware-CLI — sie respektieren --env=prod, geben bei Fehlern Non-Zero-Exit-Codes zurück und integrieren sich in Deploy-Tooling.

Leert jede gecachte Seite aus dem Backend.

Terminal-Fenster
bin/console p2lab:cache:clear

Exit-Codes

  • 0 — Erfolg; die Anzahl entfernter Dateien wird ausgegeben
  • ungleich Null — eine Exception wurde während der Leerung geworfen; siehe die Nachricht

Typische Verwendung

Als letzter Schritt eines Produktions-Deploys, nach cache:clear und etwaigen Migrationen:

Terminal-Fenster
bin/console plugin:refresh
bin/console plugin:update P2LabCache
bin/console cache:clear
bin/console p2lab:cache:clear

P2Lab Cache hängt sich an Shopwares Standard-CLI-Primitiven ein. Folgende Befehle sind wichtig:

Leert den Symfony-Anwendungscache. Das leert auch alle im Filesystem-Backend gespeicherten Seiten (weil sie unter var/cache/ liegen). Nach Deploys ausführen.

Verarbeitet die async Message Queue. P2Lab Cache nutzt sie für Cache-Warming und einige Invalidierungspfade. Als langlebigen Prozess in Produktion betreiben.

Verarbeitet Scheduled Tasks — inklusive der drei nächtlichen Aufräumtasks von P2Lab Cache (siehe Geplante Tasks).

Listet jeden Scheduled Task im System. Suchen Sie nach Einträgen mit Präfix p2lab_cache., um zu bestätigen, dass die Tasks des Plugins registriert sind.

Die REST-API des Plugins ist der empfohlene Weg, Cache-Operationen über das Leeren hinaus zu skripten. Etwa um aus einem Deploy-Skript einen Warmup zu starten:

Terminal-Fenster
TOKEN=$(curl -s -X POST https://shop.example.com/api/oauth/token \
-H "Content-Type: application/json" \
-d '{"grant_type":"client_credentials","client_id":"...","client_secret":"..."}' \
| jq -r '.access_token')
curl -X POST https://shop.example.com/api/_action/p2lab-cache/warmup/start \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"salesChannelId":null,"batchSize":100}'

Siehe REST-API für die volle Endpoint-Liste.