Systemwartung: Cachebereinigung nutzen: Unterschied zwischen den Versionen

Aus Contao Community Documentation

(Die Seite wurde neu angelegt: „==Allgemeine Informationen== Unter System -> Systemwartung bietet das Contao-Backend die Möglichkeit der Bereinigung von Tabellen und Verzeichnissen. Darüber…“)
 
(Aus Benutzernamensraum verschoben und Kategorie ergänzt)
 
(2 dazwischenliegende Versionen von einem Benutzer werden nicht angezeigt)
Zeile 1: Zeile 1:
==Allgemeine Informationen==
+
[[Category:Dev HOWTOS]]
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. Um
+
 
 +
== 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:
 +
 
 +
[[Datei:Systemwartung_bild1.jpg]]
 +
 
 +
Um die Bereinigung in eigenen Erweiterungen zu nutzen, muß die config/config.php bearbeitet werden.
 +
 
 +
== Tabellen bereinigen ==
 +
 
 +
<source lang="php">
 +
$GLOBALS['TL_PURGE']['tables']['meine_erweiterung'] = array
 +
(
 +
'callback' => array('Namensraum\Klasse','purgeCache'),
 +
'affected' => array('tl_tabelle1','tl_tabelle2')
 +
);
 +
</source>
 +
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.<br>
 +
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 ==
 +
 
 +
<source lang="php">
 +
$GLOBALS['TL_PURGE']['folders']['meine_erweiterung'] = array
 +
(
 +
'callback' => array('Namensraum\Klasse','purgeCache'),
 +
'affected' => array('assets/meincache','system/cache/auchmeincache')
 +
);
 +
</source>
 +
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.<br>
 +
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 ==
 +
 
 +
<source lang="php">
 +
$GLOBALS['TL_PURGE']['custom']['meine_erweiterung'] = array
 +
(
 +
'callback' => array('Namensraum\Klasse','purgeCache')
 +
);
 +
</source>
 +
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:
 +
 
 +
[[Datei:Systemwartung_bild2.jpg]]
 +
 
 +
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:
 +
<source lang="php">
 +
$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();
 +
</source>
 +
Die Funktion calcCache ist bei mir für die Detailinformationen zuständig. Die werden einfach an das Label rangehangen.

Aktuelle Version vom 25. Juli 2017, 20:16 Uhr


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:

Systemwartung bild1.jpg

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:

Systemwartung bild2.jpg

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.

Ansichten
Meine Werkzeuge

Contao Community Documentation

noch 4 mal das Wort Abstraktion und ich beginne Zigaretten zu rauchen...

Martin Mildner
Navigation
Verstehen
Verwenden
Entwickeln
Verschiedenes
Werkzeuge