比方说,我有这个从多个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