Cache
Das CMS hat zwei Cache-Ebenen: komprimierte statische Assets (kompiliertes CSS und JavaScript) und den API-Response-Cache (JSON-Responses aus dem APCu-Speicher). Beide werden unter Einstellungen → Cache verwaltet.

1. Der Response-Cache
Der Response-Cache speichert JSON-Responses aus GET-Requests im APCu-Speicher. Der naechste identische Request liefert in Mikrosekunden aus dem Speicher — keine DB, kein PHP-Code, kein Session-Touch.
Konfiguration
| Feld | Zweck |
|---|---|
| Cache aktivieren | Haupt-Schalter. Haken entfernen, um den Response-Cache ganz abzuschalten. |
| Cache-Timeout in Sekunden | TTL fuer Eintraege. Typisch: 300 (5 Min), 3600 (1 h). |
Klick Speichern. Aenderungen greifen beim naechsten Request.
Was gecacht wird
Cache-Hit-Bedingungen (alle muessen zutreffen):
- Methode ist
GET. - Keine User-Session aktiv (
$_SESSION['userid']leer). - Keine Backend-Session aktiv.
- Kein
X-Api-Key-Header. - TTL > 0.
- Endpunkt nicht in Ausschluss-Liste (siehe unten).
Responses tragen einen X-Cache-Header, der dir sagt, was passiert ist:
X-Cache: HIT— aus dem Speicher geliefert.X-Cache: MISS— frisch berechnet, im Speicher abgelegt.- Kein Header — nicht cache-faehig (Session vorhanden, POST, Backend-Endpunkt oder ausgeschlossen).
Was nie gecacht wird
- Alle
backend/*-Endpunkte (hartkodiert). - Authentifizierte Requests (jede Session).
- API-Schluessel-Requests (pro Schluessel gezaehlt, geteilter Cache lohnt sich nicht).
- POST, PATCH, DELETE.
- Endpunkte in der Ausschluss-Konfiguration.
Die Ausschluss-Liste liegt in _public/extensions/core/backend/cache_settings/config/cache_exclude_endpoints.json. Prefix-Match gegen den Request-Pfad. Typisch: shop/cart, auth, checkout.
2. Cache leeren
Der Button Cache leeren entleert alle APCu-Cache-Eintraege — Response-Cache, Rate-Limit-Buckets, gecachete Ausschluss-Lookups. Nutz ihn nach:
- Massenhaften Content-Aenderungen (Massen-Import, Deploy).
- Editieren von Laufzeit-Uebersetzungen.
- Aenderungen an der Ausschluss-Konfiguration.
- Jedes Mal, wenn das Frontend veraltete Daten zeigt.
Klick den Button. Ein Erfolgs-Banner bestaetigt.
Cache-Clear betrifft auch Rate-Limits
APCu haelt mehr als Responses — auch die Rate-Limit-Tokens. Ein Clear setzt jeden Bucket zurueck, ein laufender DoS bekommt frisches Budget. Auf Produktion besser gezielte Invalidation (z.B. PHP-FPM-Restart im Wartungsfenster).
3. CSS und JS komprimieren
Der Button JS und CSS komprimieren laeuft die Asset-Pipeline:
- Konkateniert und minifiziert jede LESS-Datei, die zu Frontend-CSS kompiliert.
- Buendelt JavaScript.
- Regeneriert das Custom-CSS fuer Pagebuilder-Abstaende, -Flex und -Custom-CSS-Felder.
- Kompiliert das Custom-LESS aus Design-Tokens (siehe Design-Tokens).
Lauf ihn nach:
- Aenderungen an Design-Tokens in Einstellungen → Design.
- Deployment eines neuen Themes.
- Direktem LESS-Editieren auf dem Server.
Die komprimierten Outputs landen in _public/cache/ und werden mit langem Browser-Cache-Header geliefert.
Browser-Cache
Komprimierte Assets tragen Cache-Control: max-age=31536000, immutable. Beim Komprimieren kommt ein neuer Hash in den Dateinamen — Browser laden die neue Datei automatisch. Veraltete Browser-Caches sind auf CSS/JS-Ebene kein Problem.
Fuer die Content-Ebene (Seiten, Blog, Produktlisten) sorgt der Response-Cache + Cache-Busting auf internen Links fuer Frische.
Wie APCu dazupasst
Response-Cache, Rate-Limiter, Ausschluss-Konfig-Lookup und Cache-Einstellungs-TTL liegen alle in APCu (geteilter Speicher innerhalb eines PHP-FPM-Pools). Ist APCu nicht installiert:
- Response-Cache wird wirkungslos (berechnet Responses weiterhin).
- Rate-Limiter faellt auf "immer erlauben".
- Cache-Einstellungs-TTL wird pro Request aus der DB gelesen.
Pruef im Task-Manager → Systemstatus. Die APCu-Karte muss Aktiv zeigen. Zeigt sie Inaktiv, bitte deinen Entwickler, php-apcu zu installieren.
Haeufige Fehler
Content bearbeitet, Frontend zeigt weiterhin Alt. Klick Cache leeren. Fuer eine einzelne Seite hat der Response-Cache standardmaessig 5 Minuten TTL; Warten reicht auch.
Frontend zeigt nach Deploy kein Styling. Klick JS und CSS komprimieren. Deploys kopieren Dateien, ohne den Komprimierer neu zu starten.
X-Cache: HIT auf einer gerade bearbeiteten Seite. Gleiche Ursache — Cache leeren oder TTL abwarten.
Rate-Limiter scheint nie auszuloesen. APCu aus. Pruef Task-Manager → Systemstatus.
Siehe auch
- Task-Manager — bestaetigt, dass APCu aktiv ist.
- Design-Tokens — der Komprimieren-Button baut Design-Tokens neu.
- Uebersetzungen — nach Massen-Bearbeitungen Cache leeren.