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();