Hello,
ich suche nach der elegantesten Möglichkeit, definierte Funktionen zu ermitteln.
<?php ### __fuction__.php ###
header('Content-Type: text/plain');
function Eins()
{
return "eins: " . __FUNCTION__ . "\r\n";
}
function Zwei()
{
return "zwei: " . __FUNCTION__ . "\r\nzwei ruft eins: ". eins() ."\r\n";
}
echo eins();
echo zwei();
include ('functions.inc.php'); ## deklariert Funktion Drei()
function Vier()
{
return "vier: " . __FUNCTION__ . "\r\n";
}
$_functions = get_defined_functions();
print_r($_functions['user']);
?>
ergibt die Ausgabe:
eins: Eins
zwei: Zwei
zwei ruft eins: eins: Eins
Array
(
[0] => eins
[1] => zwei
[2] => vier
[3] => drei
)
Es können verständlicherweise nur die Funktionen gefunden werden, die im Script bereits zusammengeführt wurden, also entweder direkt im Script deklariert wurden oder eben included oder required wurden.
Wie könnte ich nun in einer größeren Applikation alle Funktionen ermitteln, ohne sie einzubinden, was bei einem include geschehen würde?
Es gibt ja leider kein undeclare() für Funktionen. Geladen ist geladen. Und bei einer größeren Applikation würde der Speicher für alle nicht ausreichen.
Die Output-Buffer-Funktionen helfen mir auch nicht weiter.
Bleiben mir da nur noch reguläre Ausdrücke und ein Parsen der ganzen Sammlung, oder hat jemand eine bessere Idee?
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg