2010-08-06 57 views
1

有沒有辦法生成一段代碼所使用的所有函數?查看PHP項目或代碼使用哪些函數/庫的快速方法

使用Java很容易,因爲您只需在代碼頂部複製import語句即可。使用PHP,因爲您不需要導入庫,所以更加困難。

我在快速解決方案之後(如果有的話)出於文檔目的。

回答

0

我想說這在PHP中更加困難,考慮到諸如call_functioneval之類的功能,它們允許調用函數的方式。您最好的辦法是找到includeinclude_oncerequirerequire_once的所有實例,但您無法確定您的列表是如此簡潔。還有類自動加載需要考慮。

1

get_defined_functions()給出了一個數組,列出了可用於代碼的所有函數(用戶定義的和內置的),但不會告訴您它們是否實際使用。

編輯

也有PHPUnit中和Xdebug "Code Coverage" tools包括功能,可以提供這樣的信息基於代碼的實際執行

1

您可以使用get_declared_classesget_declared_interfacesget_defined_functions但不會顯示它們是否被稱爲或不只是他們是否已被定義(包括) 。

0

我最近一直在想這個。我的想法是,你可以添加一些邏輯到你的自動加載器,以保存所有被調用到日誌文件(注意重複條目)

理想情況下,這可能是你可以打開,通過你的整個項目,然後檢查日誌文件以查看使用的內容,然後將其關閉。 (對我來說,這意味着它只在我的應用程序處於調試模式時纔有效)

我的解決方案並不是要在執行過程中的某個特定點上定義什麼,而是爲了跟蹤您的自定義函數/庫,在將項目上傳到服務器時需要包含這些信息。例如,如果你有一堆通用庫,並且你只需要記住爲某個項目上傳哪些庫。這可能不是你問的具體問題,但我認爲它已經足夠接近你的問題來提及它。

相關問題