Systemwartung: Cachebereinigung nutzen: Unterschied zwischen den Versionen
Aus Contao Community Documentation
(→Allgemeine Informationen) |
K (Samson1964 verschob die Seite Benutzer:Samson1964/Systemwartung: Cachebereinigung nutzen nach Systemwartung: Cachebereinigung nutzen) |
(kein Unterschied)
|
Version vom 25. Juli 2017, 20:15 Uhr
Inhaltsverzeichnis
Allgemeine Informationen
Unter System -> Systemwartung bietet das Contao-Backend die Möglichkeit der Bereinigung von Tabellen und Verzeichnissen. Darüberhinaus gibt es noch eine benutzerdefinierte Möglichkeit der Bereinigung. Hier ein Screenshot aus einem Backend einer Contao-3.5.28-Installation:
Um die Bereinigung in eigenen Erweiterungen zu nutzen, muß die config/config.php bearbeitet werden.
Tabellen bereinigen
$GLOBALS['TL_PURGE']['tables']['meine_erweiterung'] = array ( 'callback' => array('Namensraum\Klasse','purgeCache'), 'affected' => array('tl_tabelle1','tl_tabelle2') );
Die Callback-Funktion wird nur ausgeführt, wenn das Häkchen gesetzt und die Bereinigung damit gestartet wurde. Bei der bloßen Anzeige der Systemwartung passiert noch nichts. Mit dem Bereinigen an sich hat die Callback-Funktion nichts zu tun, aber kann man z.B. in Logdateien schreiben oder irgendetwas anderes machen.
Für die in affected angegebenen Tabellen ermittelt Contao die Anzahl der Einträge und den Speicherplatz und zeigt diese Informationen im Backend an, siehe Screenshot oben.
Verzeichnisse bereinigen
$GLOBALS['TL_PURGE']['folders']['meine_erweiterung'] = array ( 'callback' => array('Namensraum\Klasse','purgeCache'), 'affected' => array('assets/meincache','system/cache/auchmeincache') );
Die Callback-Funktion wird nur ausgeführt, wenn das Häkchen gesetzt und die Bereinigung damit gestartet wurde. Bei der bloßen Anzeige der Systemwartung passiert noch nichts. Mit dem Bereinigen an sich hat die Callback-Funktion nichts zu tun, aber kann man z.B. in Logdateien schreiben oder irgendetwas anderes machen.
Für die in affected angegebenen Verzeichnisse ermittelt Contao die Anzahl der Dateien und zeigt diese Informationen im Backend an, siehe Screenshot oben.
Benutzerdefiniert bereinigen
$GLOBALS['TL_PURGE']['custom']['meine_erweiterung'] = array ( 'callback' => array('Namensraum\Klasse','purgeCache') );
Die Callback-Funktion wird nur ausgeführt, wenn das Häkchen gesetzt und die Bereinigung damit gestartet wurde. Bei der bloßen Anzeige der Systemwartung passiert noch nichts. In der Callback-Funktion müssen Sie im Gegensatz zu den beiden anderen Möglichkeiten alles selbst machen, also auch Ihre Bereinigungsaufgaben. Ein affected-Array wird bei custom nicht benötigt.
Der zweite Screenshot zeigt zwei benutzerdefinierte Bereinigungsfunktionen:
Um in die Anzeige ein paar Detailinformationen zur bevorstehenden Bereinigung zu bekommen, muß man etwas tricksen:
Sprachvariablen
In der Datei languages/de/tl_maintenance.php können die deutschen Übersetzungen für die Anzeige abgespeichert werden. Für das Beispiel im zweiten Screenshot sieht das so aus:
$GLOBALS['TL_LANG']['tl_maintenance_jobs']['dewis'] = array('DeWIS-Cache leeren','Löscht den Cache der DeWIS-Abfrage. Dieser Cache kann in den Backend-Einstellungen dauerhaft deaktiviert werden.'); // Ausgabe ergänzen $GLOBALS['TL_LANG']['tl_maintenance_jobs']['dewis'][0] .= \Samson\DeWIS\DeWIS::calcCache();
Die Funktion calcCache ist bei mir für die Detailinformationen zuständig. Die werden einfach an das Label rangehangen.