PHP中是否有任何反射/內省/魔法讓你找到定義了特定類(或函數)的PHP文件?尋找定義類的PHP文件(在運行時)
換句話說,我有一個PHP類或實例化對象的名稱。我想通過這個(函數,反射類等),將返回文件系統路徑的類定義。
/path/to/class/definition.php
我知道我可以使用(get_included_files())
讓所有迄今已包含的文件列表,然後手動解析這些,但是這是一個很大的單個嘗試文件系統的訪問。
我也知道我可以在某處緩存此信息我們的__autoload機制,寫一些額外的代碼。但是,修改現有__autoload是關閉在我心目中的情況下限制。
聽到擴展,可以做到這一點會很有趣,但我最終會喜歡一些可以在「股票」上運行的東西,安裝。
誠實,非混蛋的好奇心在這裏。是什麼讓你認爲這個答案比我已經考慮並拒絕的想法更好? 「 我意識到我可以使用(get_included_files())獲取迄今爲止已包含的所有文件的列表,然後手動解析它們,但是對於單次嘗試來說,這是很多文件系統訪問權限。」 – 2010-03-10 20:22:31
,因爲它的一行不同於它在PHP中編寫解析器所需要的許多行,而且我認爲grep函數編譯爲C,並且可能比寫入的任何內容快得多。 – Seaux 2010-03-10 20:28:26
啊,明白了。我的實際擔憂是一再重複訪問每個文件的磁盤訪問權限(這是我正在構建的工具中會發生的很多事情),而不是我將嘗試使下一個更清晰的代碼數量時間。 (僅供參考:你應該看看ack,它比grep好!) – 2010-03-10 21:26:18