Ja das ist ja mau.............miau :(
Christian Kuhn schrieb: > Hi, > > > Roland Müller wrote: >> hab grad mit Bestürzen festgestellt dass man für pi1 keinen >> Konstruktor verwenden darf, ansonsten sind die pivars leer!!! >> Beide Konstruktoren werden aufgerufen von tslib_pibase und tx_ext_pi1. >> Der tx_ext_pi1 hatte nichtmal eine Zeile Code. >> Dennoch leert er die pivars. >> >> Das ist doch crank! Warum ist das so? > > > Das ist nicht krank, das ist php4 ... ;) > > class tslib_pibase hat einen (gleichnamigen) Konstruktor, der > $this->piVars initialisiert. (siehe > typo3/sysext/cms/tslib/class.tslib_pibase.php) > > Da alle FE-Extensions von pibase abgeleitet sind (class foo extends > tslib_pibase), greift folgender Hinweis in der php-doku: > > "Caution > PHP 4 doesn't call constructors of the base class automatically from a > constructor of a derived class. It is your responsibility to propagate > the call to constructors upstream where appropriate." > > (http://de3.php.net/manual/en/language.oop.constructor.php) > > Wenn also ein eigener Konstruktor verwendet werden muss, ist der der > urspruenglichen Klasse manuell zu rufen, oder der Code entsprechend > nachzubilden. > Oder man lagert den ganzen Kram direkt nach "main" aus, das wir eh von > typo3 gerufen, daher kann man auch dort initialisieren. Bisher hatte ich > dadurch noch keinen Fall, den pibase Konstruktor mit Gewalt > ueberschreiben zu muessen, lasse mich aber gern eines belehren in dem > das noetig ist (abgesehen von aesthetischen oder puristischen > oo-gruenden). php4 ist immerhin nur "moechtegern-oo", php5 hat an vielen > Stellen massiv dazugelernt, der bereits bestehende Code von typo3 5.0 > zeigt das. > > > Gruesse > Christian _______________________________________________ TYPO3-german mailing list TYPO3-german@lists.netfielders.de http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-german