Wie kann ich herausfinden, in welcher Datei und Zeile eine bestimmte Funktion definiert wurde?
109
Sie können dies auch in PHP selbst tun:
$reflFunc = new ReflectionFunction('function_name');
print $reflFunc->getFileName() . ':' . $reflFunc->getStartLine();
$reflFunc->isInternal() === TRUE
bedeutet, dass -> getFileName () und -> getStartLine () FALSE zurückgeben.$reflFunc = new ReflectionMethod($this, 'method_name');
Verwenden Sie entweder eine IDE, die dies ermöglicht (ich würde Eclipse PDT empfehlen), oder Sie können sie immer unter Linux oder mit Wingrep abrufen. Unter Linux wäre es ungefähr so:
aus dem Stammordner des Projekts.
quelle
Wenn Sie eine IDE wie Netbeans verwenden, können Sie STRG + Klicken Sie auf die verwendete Funktion. Sie gelangen dorthin, wo sie definiert ist, vorausgesetzt, die Datei befindet sich in dem von Ihnen definierten Projektordner.
Es gibt jedoch keinen Code oder keine Funktion, um dies zu tun.
quelle
Ich gehe davon aus, dass Sie mit "beschrieben" "definiert" meinen. Dafür benötigen Sie idealerweise eine anständige IDE, die dies kann.
quelle
Hier ist eine grundlegende Funktion, die Ihre gesamten Projektdateien nach einer bestimmten Zeichenfolge durchsucht und Ihnen mitteilt, in welcher Datei sie sich befindet und an welcher Zeichenposition sie beginnt, indem sie nur einfaches PHP verwendet. Hoffe das hilft jemandem ...
quelle
Wenn Sie überprüfen möchten, wo die Funktion definiert ist, versuchen Sie, die Funktion neu zu definieren. Das PHP-Fehlersystem gibt einfach einen Fehler zurück, der Ihnen mitteilt, wo die Funktion zuvor definiert wurde
quelle
Ich mag Toms Lösung, also dachte ich, ich könnte ein bisschen mehr Tricks mit ReflectionFunction teilen (es sollte auf jedem PHP 5 funktionieren):
Einzeiler zum Drucken des Dateinamens:
Bitte beachten Sie, dass der Speicherort für interne Funktionen (z. B. _ ) nicht angezeigt wird, die API jedoch wie folgt gedruckt werden kann.
So drucken Sie die Definition und die Parameter der Funktion:
Beispiel:
quelle
Sie benötigen eine IDE, die die Funktion "Open Function Declaration" unterstützt. Ein gutes für für PHP ist Eclipse PDT.
Um nach der Funktionsdefinition zu suchen, markieren Sie den Funktionsnamen, halten Sie STRG + Klicken Sie auf den Namen.
quelle