Entwicklung & Design

Allgemeine APIs: Inside TYPO3 – Ein Blick in das Innere des CMS

Seite 3 / 8

Kein direktes SQL durch Datenbank-Abstraktion

Mit der Datenbank-Abstraktions-API werden alle Zugriffe zur Datenbank gekapselt. Wenn man auf diese API zugreifen möchte, muss man lediglich angeben, welche Datenbanktabellen und Felder man wie ansprechen möchte. Alles andere erledigt die API bequem im Hintergrund. So ist es zum Beispiel möglich, neben MySQL auch andere Datenbanksysteme einzusetzen – die API erledigt hierbei über die Abstraktionsschicht die Vermittlung zwischen verschiedenen Datenbank-Systemen (zum Beispiel auch PostgreSQL und Oracle) und der angeforderten Funktion seitens der Extension (zum Beispiel Speichern einer Newsmeldung).

Beim Beispiel der Datenbank-Anbindung wird auch deutlich, welche Vorteile bei der Verwendung von APIs neben Bequemlichkeit und Schnelligkeit noch eine Rolle spielen. Würde man nämlich in seiner Extension den Zugriff auf eine MySQL-Datenbank direkt mit SQL-Befehlen implementieren und dann später entscheiden, auf eine andere Datenbank zu wechseln, müsste man alle Datenbank-Abfragen neu implementieren. Das mag noch halbwegs funktionieren, wenn man selbst der Autor der Extension ist, wird aber spätestens dann zu einem Problem, wenn man seine Erweiterungen der Allgemeinheit zur Verfügung stellt und man die Nutzung von verschiedenen Datenbank-Systemen ermöglichen möchte.

Zugriff auf die APIt3lib_DB
Klassendatei:			t3lib/t3lib_DB.php
Anzahl Funktionen:	   42
Zugriff vom Frontend:     $GLOBALS['TYPO3_DB']
Zugriff vom Backend: 	  $GLOBALS['TYPO3_DB']

Listing 1

Exemplarisch wollen wir an dieser API aufzeigen, wie APIs im Allgemeinen zu lesen sind und was die gewonnenen Informationen im Detail bedeuten.

Um sich nun einen Überblick über die vorhandenen API-Funktionen zu verschaffen, sollte man die oben genannte Klassendatei „t3lib/t3lib_DB.php“ einmal näher betrachten. Nach dem Öffnen in einem Editor finden Sie um Zeile 36 herum den Kommentar „[CLASS/FUNCTION INDEX of SCRIPT]“ und darauf folgend die Funktionsdefinitionen schön übersichtlich hinter den Kommentaren aufgelistet, mit deren Hilfe man sich direkt und schnell einen Überblick über die in der Klasse vorhandenen Funktionen verschaffen kann. Vor den Definitionen steht jeweils die Zeilennummer, ab welcher die Funktion ausformuliert im Quelltext steht.

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!