URL: https://www.overclockers.at/coding-stuff/php5_overloading_133762/page_2 - zur Vollversion wechseln!
nicht nur "funktionen", sondern auch sprachteilen, wie eben, dem "new" statement, man kann aber nur exceptions catchen, die durch den "user" per throw geworfen werden...
sicher, ich kann exceptions noch immer gut dazu benutzen um bei einem speziellen fehler eine komplette objektstruktur zu verlassen - was ja schon sehr praktisch ist, aber zum beispiel funktioniert wiederum "throw" nicht innerhalb der __autoload() function...
Verstehe. Persoenlich verwende autoload nicht, hab das Problem aber auf php-dev verfolgt. Fuer alle anderen Funktionen: im Endeffekt bin ich dazu uebergegangen, fuer alle Funktionen, die mir im Fehlerfall meine Applikation in einem unbrauchbaren Zustand hinterlassen, habe ich Wrapper-Funktionen geschrieben, die dann die Exceptions schmeissen (fopen, getimagesize, mysql_connect, etc.). Mit einem entsprechendem bytecode-cache hab ich auch noch keine Performanceprobleme gesehen und lebe ziemlich gluecklich damit.
in wirklichkeit ist das aber redundant, und das find' ich ugly - und auch mit Bytecode und wwi wirst du merklichen performanceverlust bemerken wenn du deine wrapper-funktion in oft ausgeführten schleifen verwendest: zb. eine wrapper-funktion für eine division (um division durch 0 abzufangen)Zitat von RektalVerstehe. Persoenlich verwende autoload nicht, hab das Problem aber auf php-dev verfolgt. Fuer alle anderen Funktionen: im Endeffekt bin ich dazu uebergegangen, fuer alle Funktionen, die mir im Fehlerfall meine Applikation in einem unbrauchbaren Zustand hinterlassen, habe ich Wrapper-Funktionen geschrieben, die dann die Exceptions schmeissen (fopen, getimagesize, mysql_connect, etc.). Mit einem entsprechendem bytecode-cache hab ich auch noch keine Performanceprobleme gesehen und lebe ziemlich gluecklich damit.

Ugly ist relativ. PHP selbst ist nicht Ugly? Well, ich pass natuerlich auf Loops auf. Aber so oft kommt das net vor. Aber in der Praxis hat sichs gezeigt, dass es nur vorteilhaft ist. Ich groben brauch ich mir net besonders viel Gedanken machen, wo ueberall auch nicht Fehler passieren koennen. Die werden global, ueber dem main execution path, abgefangen und entsprechend der Applikation drauf reagiert.
Zitatübrigens müssen wir uns über die bytecode-sache mal unterhalten
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026