比方說,我有這個從多個PHP文件我如何才能找到一個包含在目錄和子目錄中的多個文件中的函數?
do_something($ VAR)稱爲PHP函數;
如何找到函數被調用的文件?
後來編輯:我想這樣做在Windows
比方說,我有這個從多個PHP文件我如何才能找到一個包含在目錄和子目錄中的多個文件中的函數?
do_something($ VAR)稱爲PHP函數;
如何找到函數被調用的文件?
後來編輯:我想這樣做在Windows
至少有一些IDE可以通過您當前的項目搜索特定變量,函數調用等的所有實例。如果您正在使用IDE,請檢查它的幫助。
如果您使用的是* nix的系統,你可以使用grep搜索:
grep do_something *.php'
以上會搜索當前的工作目錄中的所有文件中的文本「do_something」與」 .php結尾' 延期。您可以擴大此使用find command搜索當前目錄的所有子目錄:
find . -name "*.php" -exec grep do_something {} \;
使用「grep的人」和「人找到」從你的* nix命令行來了解更多信息。
如果您使用的是Windows,我相信find command可以做類似的事情,我不熟悉它,但基本的語法應該是這個樣子:
find "do_something" *.php
Adobe Dreamweaver有一個網站寬/目錄下的文本搜索功能一樣eclipse workbench,UltraEdit和TopStyle Pro。
三種方法可以做到這一點:
使用合理的目錄結構和應用程序設計。如果您遵循OOD並且有清晰的目錄結構,那麼應該很容易找到任何類和它的方法的聲明。如果該方法是在父類中聲明的,則只需掃描繼承樹。如果,OTOH,你正在寫意大利麪代碼並使用大量的全局函數,那麼......你遇到了更大的問題。
請參閱文檔。任何大規模的應用程序都應該有一個記錄良好的API,它至少應包含所有類及其成員函數和屬性的列表。 API文檔還應該告訴你每個類在其中定義的文件。在API中進行快速搜索會調出你需要的信息。
使用像Eclipse這樣的智能IDE來解析代碼和類定義。 Eclipse有一個Open Declaration function,它將打開聲明元素的源文件並顯示聲明。
你應該總是做前兩個;最後只是一個方便。
+1雖然'grep -Ri「do_something」。/'可能是一個更容易的grep解決方案 – danlefree 2012-02-10 13:59:06
@danlefree:在很多年前開始使用非gnu * nix時,我一直習慣於使用find並忘記(gnu)grep有一個遞歸選項。也就是說,我剛剛測試過並且'find ... -exec grep ...'返回的結果比grep -R ...快得多(秒數與分鐘數)。 – GreenMatt 2012-02-10 14:52:05
我的結果顯示'grep -Ri'花了2.487s(與'find'的5.581s)搜索ext4文件系統上的大約38MB文件,這是一個非常常見的靜態類名稱......也許系統的細節考慮到? – danlefree 2012-02-10 17:40:07