hotti: Fatal Error abfangen

Beitrag lesen

hi,

Da hab ich stundenlang an der falschen Stelle gesucht....

Offensichtlich besteht in PHP-Kreisen absolut kein Bedarf, Methoden so auszulagern, dass deren Source erst auf Anforderung kompiliert wird. Das waren meine Suchkriterien ;)

Wozu das Auslagern gut sein kann: Es verringert den Overhead, der beim Kompilieren der Source einer Klasse besteht, insbesondere dann, wenn die Klasse sehr viele Methoden bereitstellt. Beispielsweise gäbe es in einer Klasse 'Shop' die Methode 'order', die erst dann gebraucht wird, wenn der Kunde seine Bestellung absendet. Das Laufzeitverhalten wird verbessert, wenn diese Source nicht bei jedem Klick, den der Kunde tätigt, kompiliert wird.

Darüber nachzudenken lohnt sich schon bei einer Methode, umsomehr, wenn es mehrere Methoden gibt, die vergleichsweise selten gebraucht werden. Nun denn, ich habe diese Anforderung gestern mit __call() gelöst.

Es gibt noch einen anderen Grund, darüber nachzudenken, das ist der Overload an sich, Beispiel:

Klasse Foo hat eine Methode foo(). Klasse Bar erbt von Klasse Foo alle Methoden und in Klasse Bar wird die Methode foo() überschrieben.

Kompiliert werden die Klassen Foo und Bar und damit alle Methoden der Basisklasse und alle Methoden der Subklasse. Wenn jedoch Foo::foo() ausgelagert ist, wird die nicht kompiliert. Kompiliert wird in diesem Fall nur die in der Subklasse überschriebene Methode.

Haben eingefleischte PHP-Programmierer dafür eine andere Lösung?

Hotti