schachbulle / contao-databaseinfo-bundle
Zeigt in der Systemwartung, wie oft die einzelnen Inhaltselemente in der Datenbank verwendet werden.
Package info
github.com/Samson1964/contao-databaseinfo-bundle
Type:contao-bundle
pkg:composer/schachbulle/contao-databaseinfo-bundle
Requires
- php: ^7.4 || ^8.0
- contao/core-bundle: ^4.13 || ^5.0
- symfony/config: ^5.4 || ^6.0 || ^7.0
- symfony/dependency-injection: ^5.4 || ^6.0 || ^7.0
- symfony/http-kernel: ^5.4 || ^6.0 || ^7.0
Requires (Dev)
- contao/manager-plugin: ^2.0
Suggests
None
Provides
None
Conflicts
- contao/core: *
- contao/manager-plugin: <2.0 || >=3.0
Replaces
None
README
Zeigt in der Systemwartung, was in der Datenbank tatsächlich verwendet wird — und was vermutlich Altlast ist.
Übersichten
Zwei Tabellen, gleich aufgebaut:
- Inhaltselemente aus
tl_content, je Typ die Anzahl der Datensätze, der Bereich aus$GLOBALS['TL_CTE']und ob der Typ von Contao selbst stammt. - Frontend-Module aus
tl_module, dasselbe mit$GLOBALS['FE_MOD'].
Typen, die zwar in der Tabelle vorkommen, aber nicht (mehr) registriert sind – etwa aus deinstallierten Erweiterungen –, erscheinen mit dem Bereich „unbekannt“.
Hinweise auf Altlasten
Unter den Tabellen stehen drei Prüfungen. Jede meldet sich nur, wenn es etwas zu melden gibt:
- Nicht registrierte Typen in
tl_contentundtl_module, mit Anzahl je Typ. - Inhaltselemente ohne Elterndatensatz —
ptable/pidzeigen ins Leere, das Element ist über das Backend nicht mehr erreichbar. Aufgeschlüsselt nach Elterntabelle; eine leereptablegilt alstl_article, und eine Elterntabelle, die es gar nicht mehr gibt, macht sämtliche zugehörigen Elemente verwaist. - Module ohne Einbindung — weder in einem Seitenlayout noch von einem
Inhaltselement des Typs „module“ noch von einem Modul des Typs
root_page_dependent_modulesbenutzt.
Das Modul löscht nichts, es zeigt nur an.
Grenze der dritten Prüfung: Eine Einbindung über den Insert-Tag
insert_module wird nicht erkannt, weil dieser in jedem Textfeld jeder Tabelle
stehen kann. Ein gemeldetes Modul kann also trotzdem benutzt werden — vor dem
Löschen nachsehen.
Spalte „Kern-Element“
„Ja“ steht für Typen, die Contao selbst mitbringt: alles aus contao/core-bundle
sowie die Elemente und Module der offiziellen Contao-Bundles (news, calendar,
faq, newsletter, comments, listing). Alle anderen stammen aus Erweiterungen.
Die Zuordnung kommt aus zwei Listen in src/Classes/DatabaseInfo.php, weil sie
sich zur Laufzeit nicht zuverlässig ermitteln lässt: Contao 5 registriert seine
Elemente und Module als Fragmente, die in $GLOBALS['TL_CTE'] bzw.
$GLOBALS['FE_MOD'] nur als Contao\ContentProxy bzw. Contao\ModuleProxy
erscheinen. Die Listen umfassen die Typen beider unterstützter Contao-Fassungen
und müssen bei einer neuen Contao-Hauptversion ergänzt werden.
Voraussetzungen
- PHP 7.4 bis 8.4
- Contao 4.13 oder Contao 5
Geprüft wurde gegen Contao 4.13.58 und Contao 5.7.7, jeweils mit PHP 8.4.24.