Cache Modul

Modulbeschreibung

Lange Ladezeiten sind ein KO-Kriterium für jeden Onlineshop und sind in vieler Hinsicht problematisch – oft wirken sie sich direkt negativ auf den Umsatz eines Shops aus.

Mit unserem Cache-Modul beschleunigen Sie Ihren Shop auf Raketengeschwindigkeit. Alle Unterseiten Ihres Onlineshops werden in einem Cache abgelegt und ab diesem Zeitpunkt von dort aus aufgerufen. Dadurch müssen die verschiedenen Unterseiten nicht bei jedem Aufruf komplett neu aufgebaut werden.

In den Modul-Einstellungen können Sie bestimmen, welche Seiten gecached werden sollen und wie lang die Aufbewahrungszeit sein soll. Natürlich ist das Zurücksetzen des Caches jederzeit möglich. Mit der Cache-Warm-Up-Funktion können bestimmte Seiten automatisch neu gecached werden.

Funktionsumfang

  • Schnellere Ladezeiten direkt nach der Installation des Moduls.

  • Google PageSpeed Optimierung.

  • Cache kann auch während einer Session aktiv genutzt werden.

  • Dynamische Inhalte können per Ajax nachgeladen werden.

  • Sie können entscheiden, welche Bereiche des Shops gecached werden sollen.

  • TTL einstellbar.

  • Im Adminbereich kann der gesamte Cache gelöscht werden, oder nur von einzelnen Bereichen (Detailseiten, Listenansicht, Startseite) oder einzelnen Artikeln / Kategorien.

  • Cronjob zur automatischen Invalidierung und Aufwärmen des Caches

  • Über die Moduleinstellung einstellbar, welche Seiten automatisch über die Cache-Warm-Up Logik gecached werden sollen

Systemvoraussetzungen

PHP-Version OXID 4 & 5

  • PHP 5.6

PHP-Version OXID 6

  • PHP 7.0 (OXID 6.0.x)

  • PHP 7.1 (OXID 6.1.x)

  • PHP 7.2 - 7.4 (OXID 6.2.x - 6.3.x)

  • PHP 8.0 (OXID 6.3.x - 6.4.x)

  • PHP 8.1 (OXID 6.5.x)

PHP-Version OXID 7

  • PHP 8.0 - 8.1 (OXID 7.0.x - 7.1.x)

  • PHP 8.2 (OXID 7.1.x)

Webserver-Konfiguration

  • IonCube Loader (mind. v5.0)

Kompatibel mit den Themes

  • Flow

  • Wave

  • RoxIVE

  • Apex

Kompatibel mit den OXID Versionen

  • OXID CE/PE 4.9.x bis 4.10.x

  • OXID EE 5.2.x bis 5.3.x

  • OXID CE/PE/EE 6.0.x bis 6.5.x

  • OXID CE/PE/EE 7.0 bis 7.1.x

Template-Engine

  • Smarty bis OXID 6.5.x

  • Twig ab OXID 7.0.x

Installation

Ab OXID 6/7

  1. Falls noch nicht geschehen, laden Sie bitte zunächst das digidesk Basis-Modul herunter und installieren Sie es gemäß der enthaltenen Installationsanleitung.

  2. Für dieses Modul erstellen Sie nun einen weiteren Unterordner "cache" im Ordner "packages/digidesk", in den die heruntergeladene Zip-Datei entpackt wird.

  3. Führen Sie anschließend folgenden Befehl aus dem Hauptverzeichnis des Shopsystems aus: composer require digidesk/cache

  4. Nun kann das Modul im OXID eShop Admin aktiviert werden

  5. Ggf. Tmp-Verzeichnis leeren und Views neu generieren

Bis OXID 5.3.x/4.10.x

  1. Falls noch nicht geschehen, laden Sie bitte zunächst das digidesk Basis-Modul herunter und installieren Sie es gemäß der enthaltenen Installationsanleitung. Sie erhalten dieses unter:https://www.digidesk.de/produkte/basis-modul

  2. Fügen Sie den Inhalt des Ordnerverzeichnisses des Moduls "modules/digidesk/" via FTP/SFTP unter dem gleichnamigen Pfad in Ihren Shop ein

  3. Aktivieren Sie das Modul im OXID eShop Admin

  4. Ggf. Tmp-Verzeichnis leeren und Views neu generieren

  5. Bitte fahren Sie nun mit der Einrichtung des Moduls fort

Update

Ab OXID 6/7

  1. Entpacken Sie die neue Modulversion in den Ordner "packages/digidesk/cache"

  2. Deaktivieren Sie das Modul im OXID eShop Admin

  3. Führen Sie anschließend folgenden Befehl aus dem Hauptverzeichnis des Shopsystems aus: composer update digidesk/cache Die Frage, ob die Dateien des Pakets überschrieben werden sollen, bestätigen Sie bitte mit "Y".

  4. Aktivieren Sie das Modul im OXID eShop Admin

  5. Ggf. Tmp-Verzeichnis leeren und Views neu generieren

Bis OXID 5.3.x/4.10.x

  1. Bitte aktualisieren Sie das Basis-Modul gemäß der darin enthaltenen Installationsanleitung.

  2. Deaktivieren Sie dieses Modul im OXID eShop Admin.

  3. Fügen Sie den Inhalt des Ordners "modules/digidesk/" via FTP/SFTP unter dem gleichnamigen Pfad in Ihren Shop ein und überschreiben Sie dabei die vorhandenen Dateien des Moduls.

  4. Aktivieren Sie dieses Modul im OXID eShop Admin.

  5. Ggf. Tmp-Verzeichnis leeren und Views neu generieren.

Automatische Invalidierung des Caches und Cache-Warm-Up

Für die automatische Invalidierung des Caches und das nachfolgende Aufwärmen der wichtigsten Seiten enthält das Cache Modul einen Cronjob, um regelmäßig abgelaufene Seiten aus dem Cache zu löschen, so dass diese neu gecached werden können. Das neue Cachen für die wichtigen Einstiegsseiten (in der Moduleinstellung genauer einstellbar) erfolgt autmatisch. Dieser kann über folgende URL aufgerufen werden:

   https://www.ihre-shop-url.de/?cl=dd_cache_cron&fnc=clearandwarmup&key=[Cronjob Schlüssel in der Modul-Einstellung]

Für crontab sieht der Eintrag z.B. folgendermaßen aus:

OXID 6
*/15 * * * * https://www.ihre-shop-url.de/?cl=dd_cache_cron&fnc=clearandwarmup&key=[Cronjob Schlüssel in der Modul-Einstellung]
OXID 7
*/15 * * * * <SHOP-HAUPTVERZEICHNIS>/vendor/bin/dd-clearandwarmup --key=[Cronjob Schlüssel in der Modul-Einstellung]

Dies startet das Cronjob-Skript alle 15 Minuten, wobei das Skript die in den Moduleinstellungen definierten TTL-Zeiten berücksichtigt, prüft, welche der gecachten Seiten neu gecached werden müssen und diese dann entfernt, damit sie automatisch oder beim nächsten Aufruf neu gecached werden können.

Entwickler Informationen

Im digidesk Cache-Modul können mehrere Möglichkeiten genutzt werden, um das Modul im größeren Umfang nutzbar zu machen. Durch das Bearbeiten einzelner Code-Fragmente lassen sich diese implementieren.

Somit können bestimmte Bereiche dynamisch gehalten werden, auch wenn diese aus dem Cache geladen werden.

Smarty Plugin/Twig-Funktion

Um Widgets trotz aktiviertem Cache-Modul aus dem Cache auszuschließen und weiterhin dynamisch zu halten, integriert das digidesk Cache-Modul ein Smarty Plugin (OXID 6) und eine Twig-Funktion (OXID 7) welches die standard Widget Funktion von OXID ersetzen kann.

Nehmen wir zum Beispiel ein Code-Fragment des Templates "footer.tpl" (OXID 6) oder "footer.html.twig" (OXID 7). Wenn man das oxwServiceList Widget vom Cache ausschließen wollte, braucht man lediglich den Aufruf der oxid_include_widget-Funktion mit dd_cache_include_widget zu ersetzen:

Vorher:

Smarty
[{block name="dd_footer_servicelist_inner"}]
    [{oxid_include_widget cl="oxwServiceList" noscript=1 nocookie=1}]    
[{/block}]
Twig
{% block dd_footer_servicelist_inner %}
    {{ include_widget({ cl: "oxwServiceList", noscript: 1, nocookie: 1, force_sid: force_sid }) }}
{% endblock %}

Nachher:

Smarty
[{block name="dd_footer_servicelist_inner"}]
    [{dd_cache_include_widget cl="oxwServiceList" noscript=1 nocookie=1}]
[{/block}]
Twig
{% block dd_footer_servicelist_inner %}
    {{ dd_cache_include_widget({ cl: "oxwServiceList", noscript: 1, nocookie: 1, force_sid: force_sid }) }}
{% endblock %}

Wichtig:

Damit ein Inhalt über das Smarty-Plugin oder über die Twig-Funktion geladen und damit vom Cache ausgeschlossen werden kann, muss dieser wie bisher bei der OXID Standard Funktion über einen Widget-Controller gerendert werden.

Hilfe & Support

Haben Sie Fragen oder benötigen Sie Hilfe bei der Installation? Gerne bieten wir Ihnen auch einen Installationsservice an. Kontaktieren Sie uns einfach über eine der unten stehenden Adressen.

Last updated