[Typo3-german] Problem und Debug-Meldung bei Mehrfachvererbung einer Basisklasse
Michael Stucki
michael at typo3.org
Tue Nov 8 18:42:32 CET 2005
Hallo Kussmann,
> Ich hatte gestern einen Bug, der mich relativ lange beschäftigt hatte. Im
> Endeffekt lag der Bug darin dass eine Basisklasse zweimal (von je einer
> Extension) erweitert wurde, obwohl dies nicht zulässig ist (jede
> Basisklasse darf nur einmal erweitert werden; dies ist ein Design-Fehler
> von Typo3), ich dies nicht wusste und beide Erweiterungen (der
> Basisklasse) sich im Wege standen...auf diesen Fehler muss man erstmal
> kommen :-(
>
> Damit mir dies nicht noch einmal passiert, habe ich folgende zwei
> Funktionen der Klasse 'class.t3lib_div.php' (welche für's instanzieren von
> Objekten zuständig sind) umgeschrieben. Wenn man nun im
> Installations-Script das Debuging einschaltet, so erhält man eine
> Fehlermeldung, wenn eine Basisklasse zwei- oder mehrfach erweitert wird.
>
> Hier der von mir geänderte Code:
>
> [...]
>
> Was haltet ihr von meiner Erweiterung?
> Im Endeffekt wird (wenn das debuging eingeschaltet ist) nach erweiterten
> Klassen gesucht (per grep-Befehl). Werden mindestens zwei solcher Klassen
> gefunden (welche auch in der typo3-Instanz aktiviert sind) so wird eine
> Debug-Meldung generiert (mit den Pfaden zu den entsprechenden Extensions).
Wie Peter schon angedeutet hat: Ist etwas unflexibel das ganze.
Eine elegantere Lösung wäre, den Inhalt von
$GLOBALS['TCA']['BE'/'FE']['XCLASS'] zu überprüfen.
Das Problem ist bloss, dass diese Werte standardmässig einfach mit PHP-Code
überschrieben werden. Vorher/Nachher Vergleiche kosten dafür einiges an
Performance.
Eine andere Idee wäre deshalb, die temp_CACHED_* Files nach "XCLASS" zu
greppen. Ist allerdings erneut mühsam da langsam.
Lösungsvorschlag:
Durchsuch das nächste Mal die temp_CACHED_* Files manuell nach "XCLASS".
Liebe Grüsse
- michael
--
Use a newsreader! Check out
http://typo3.org/community/mailing-lists/use-a-news-reader/
More information about the TYPO3-german
mailing list