[TYPO3-german] tx_div::makeInstanceClassName vs. tx_div::makeInstance

Hendrik Liebau typo3-german at hendrik-liebau.de
Thu Aug 7 17:42:07 CEST 2008


2008/8/7 Silvio Lindstedt <silvio-lindstedt at web.de>:
> Hendrik Liebau schrieb:
>> Hallo Zusammen!
>>
>> Gibt es einen Vorteil von dieser Implementierung:
>>
>> $myClassName = tx_div::makeInstanceClassName('tx_myextension_myClass');
>> $myObject = new $myClassName();
>>
>> gegenüber dieser Variante:
>>
>> $myObject = tx_div::makeInstance('tx_myextension_myClass');
>>
>> ...ok, während des Schreibens fällt mir gerade was auf. Ist der
>> einzige Vorteil, dass ich bei der ersten Variante zusätzlich noch
>> Parameter an den Konstruktor übergeben kann? Und wenn ich das nicht
>> benötige, kann ich dann genauso gut den Einzeiler verwenden?
>>
>> Gruß Hendrik
>
> Schau dir mal tx_lib_t3loader an. Dort siehst du das beide Methoden die
> selben Parameter entgegennehmen können. tx_div::makeInstance nutzt im
> Grunde genommen auch nur die alten methoden der t3lib_div:
>
> $myClassName = tx_div::makeInstanceClassName('tx_myextension_myClass');
> $myObject = new $myClassName();
>
> Du kannst also getrost den 1 Zeiler verwenden.

Vielen Dank für deine Recherche!

Aufgrund deines Hinweises habe ich mir tatsächlich mal den Code näher
angeschaut. tx_lib_t3loader nutzt zwar tatsächlich hauptsächlich die
Methoden der t3lib_div (erweitert um eine Pfadsuche). Allerdings
verwenden tx_div::makeInstance und tx_div::makeInstanceClassName
zusätzlich noch einen PearLoader, falls die Klasse auf normalem Wege
nicht gefunden wurde. (das nur fürs Protokoll)


More information about the TYPO3-german mailing list