php – 找出自行定義的 Function 或 Class 在哪個文件位置

維護專案的時候,尤其是非框架的寫法,常常看到前人的程式會不知道 Class / Function 到底定義在哪個文件,雖然用 IDE 可以很容易找出來,但如果不靠 IDE 追蹤的話,有什麼方法能得知定義在哪呢?其實可以透過 ReflectionFunction 與 ReflectionClass 。

ReflectionFunction

可以讀取指定方法的相關資訊

$reflFunc = new ReflectionFunction('方法名稱');
echo $reflFunc->getFileName() . ':' . $reflFunc->getStartLine();

ReflectionClass

能讀取指定類別的相關資訊

$reflectionClass = new ReflectionClass('Form');
echo $reflectionClass->getFileName() . ':' . $reflectionClass->getStartLine();

發表迴響