Entwicklung & Design

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

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!