Hallo @ll,
da ich dem Parser möglichst viel Arbeit ersparen möchte, versuche ich meine PHP-Dateien
klein zu halten. Code welcher nicht bei jeder Anfrage durchlaufen wird, binde ich im
Fall der Fälle per include() ein.
PHP-Code:
<?php
switch ($page) {
case 1:
include('page1.php');
break;
case 2:
include('page2.php');
break;
case 3:
include('page3.php');
}
?>
Kein Problem soweit.
Was mache ich aber, wenn eine Funktion (die auch mehrmals aufgerufen wird) auf diese
Weise erweitert werden soll?
PHP-Code:
<?php
function bla($extended = FALSE) {
if ($extended)
include('extended.fnc');
}
//Aufruf #1 - keine Erweiterung nötig
bla();
//Aufruf #2 - Erweiterung wird eingebunden
bla(TRUE);
//Aufruf #3 - Erweiterung wird erneut eingebunden :-(
bla(TRUE);
?>
Bei diesem Beispiel wäre das Skript bedeutend schneller, wenn man den include-Befehl gänzlich weglassen, und den Code aus extended.fnc direkt in die Funktion schreiben würde. Andererseits gibt es auch Fälle, in denen die Erweiterung überhaupt nicht benötigt wird - dann würde dieser Code umsonst geparst werden.
Was ich möchte: Wenn die Erweiterung einmal geladen und geparst wurde, soll sie "drin" bleiben. Ist das mit PHP überhaupt möglich?
Ich würde sagen, nein. Zend will schließlich den Performance Suit verkaufen.
Aber vielleicht hat jemand eine zündende Idee?
Thx,
Dago