t3n 17

Extensions flexibel und anpassbar entwickeln: Erweiterbare Erweiterungen

Seite 4 / 5

Alles new?

Wird XCLASS genutzt, soll auch immer ein Objekt der neuen Klasse erstellt werden. Darum darf ein solches Objekt nicht unter expliziter Angabe des Klassennamens mit dem Schlüsselwort „new“ erzeugt werden. Stattdessen lässt man TYPO3 entweder den Klassennamen ermitteln oder das Objekt direkt erstellen.

PHP – Objekte erstellen, XCLASS berücksichtigen

// Klassennamen ermitteln lassen und Objekt erstellen
$templateClass = t3lib_div::makeInstanceClassName('template');
$template = new $templateClass();
// oder Objekt direkt erstellen
$template = t3lib_div::makeInstance('template');

Listing 8

Es ist offensichtlich, dass Extensions, die dieses Verfahren nicht konsequent anwenden, nur mühsam erweiterbar sind. Jede Stelle, die Objekte explizit erzeugt, müsste überschrieben werden, um die neue Funktion zu unterstützen.

Static calls

Externe statische Attributzugriffe beziehungsweise Methodenaufrufe einer Klasse sind nur unter Angabe des Klassennamens möglich. Da hier das selbe Dilemma entsteht wie bei der Erzeugung von Objekten unter Angabe des Klassennamens, sollten statische Aufrufe vermieden werden.

Falle OOP

Beim XCLASS-Verfahren wird mit Ableitungen gearbeitet. Das bedeutet, die Sichtbarkeitsdirektiven der objektorientierten Programmierung [3] greifen. Wurden Attribute oder Methoden als „private“ deklariert, ist die Erweiterbarkeit eingeschränkt. Attribute sind so nur noch über Getter- und Setter-Methoden zugänglich. Wurden diese Methoden in der Oberklasse jedoch nicht implementiert, so können sie der abgeleiteten Klasse auch nicht hinzugefügt werden, da diese keinen Zugriff auf die geschützten Attribute hat. Um abgeleiteten Klassen den Zugriff auf diese Attribute und Methoden zu gestatten, sollten diese besser als „protected“ deklariert werden.

Bitte beachte unsere Community-Richtlinien

Schreib den ersten Kommentar!

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

Jetzt anmelden

Hey du! Schön, dass du hier bist. 😊

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team bestehend aus 65 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Danke für deine Unterstützung.

Digitales High Five,
Stephan Dörner (Chefredakteur t3n.de) & das gesamte t3n-Team

Anleitung zur Deaktivierung