Du hast deinen AdBlocker an?

Es wäre ein Traum, wenn du ihn für t3n.de deaktivierst. Wir zeigen dir gerne, wie das geht. Und natürlich erklären wir dir auch, warum uns das so wichtig ist. Digitales High-five, deine t3n-Redaktion

t3n 16

Inside TYPO3 – Teil 4 – Das Table Configuration Array und Flexforms: Ein Blick in das Innere des CMS

Während die ersten drei Teile dieser Serie die Programmierschnittstellen (APIs) genauer beleuchtet haben und gezeigt haben, wie man diese für eigene Extensions nutzt, geht es in diesem Teil um das innere Gerüst von TYPO3. Das so genannte Table Configuration Array (TCA) ist ein komplexes Array, das sämtliche Informationen zu allen Tabellen enthält, aus denen TYPO3 seine Daten bezieht. Damit ist es die Wirbelsäule des CMS und die zentrale Steuereinheit.

Eine der Hauptaufgaben eines Content Management Systems ist es, Daten in die Datenbank zu schreiben und dort wieder heraus zu holen und darzustellen – so auch bei TYPO3. Es gibt eine Vielzahl von Möglichkeiten, dies zu realisieren – wobei einige davon beispielsweise alle dazu benötigten Informationen direkt aus der Datenstruktur der Datenbank ermitteln. So könnte man beispielsweise ein Feld, das in der Datenbank als „TEXT“ definiert ist, lediglich als „HTML INPUT“-Feld im Backend darstellen. Füllt man dieses Feld aus, wird der Inhalt wieder in die Datenbank geschrieben. Dieses Vorgehen hat allerdings eine Reihe von Nachteilen:

  1. Es lassen sich nur wenige verschiedene Eingabe-Typen realisieren: Würde man beispielsweise in ein INPUT-Feld einen Bildnamen schreiben, wüsste TYPO3 nicht, dass das Bild und nicht nur der Name angezeigt werden soll.
  2. Man kann keinerlei Validierung festlegen und als Eingabewert etwa nur positive Zahlen zulassen.
  3. TYPO3 müsste alle Tabellendefinitionen ermitteln und laden, da das CMS gar nicht wissen kann, welche Tabellen gerade in Benutzung sind und welche beispielsweise nur Überbleibsel von früheren Tests oder deinstallierten Extensions sind.
  4. Bei jeder Veränderung (z. B. hinsichtlich der Darstellung) müsste die Datenbank direkt beschrieben werden.
  5. Verbindungen zu anderen Tabellen sind nur mit Fremdschlüsseln zu erreichen. Diese stehen aber aufgrund von Kompatibilitätsgründen nicht zur Verfügung. Somit können keinerlei Relationen realisiert werden.
  6. Manche Eingabetypen lassen sich schlicht nicht realisieren. So gibt es mit normalen INPUT-Feldern keine Möglichkeit, Checkboxen oder Selectboxen abzubilden.
  7. Man kann in der Datenstruktur keinerlei Informationen dazu hinterlegen, wie das spätere Eingabeformular realisiert werden soll – beispielsweise welche Felder sich wo befinden oder ob bestimmte Felder ein- oder ausgeblendet werden sollen.

Daher hat man sich bei der Konzeption von TYPO3 dazu entschieden, mit dem so genannten Table Configuration Array, kurz TCA, eine weitere Ebene einzuführen. Dieses Array enthält neben den generellen Informationen zu den Tabellen auch Informationen zu den einzelnen Feldern sowie ausreichend Metainformationen in Bezug auf Rendering, Validierung und die Relationen zu anderen Tabellen und Feldern. Da diese Informationen nun als PHP-Array vorliegen, können sie leicht beschrieben und ermittelt werden.

Bitte beachte unsere Community-Richtlinien

Schreib den ersten Kommentar!

Du musst angemeldet sein, um einen Kommentar schreiben zu können.

Jetzt anmelden