Software & Infrastruktur

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

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Schreib den ersten Kommentar!

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.