我几乎是php的新手(在“安装应用程序并尝试稍微调整一下”阶段)。 是否有任何工具可以采用分布在许多文件中的脚本,并在单个输出中显示所有处理的代码(对于传递给脚本的给定参数集)?
例如,我想从一个不同语言的脚本调用zen cart,它返回一个没有任何周围页面的类别列表。所以我希望能够跟踪生成的实际过程,然后剥离所有不需要的位以创建自定义脚本。
答案 0 :(得分:1)
你想要的是计算理论文献中的"backwards slice"(“所有有助于特定计算结果的代码”)。要计算后向切片,需要解析语言,计算程序中选定点的所有影响(控制和数据流),然后将这些点显示给您。
存在像C这样的语言的切片工具。它们可能存在于Java(作为学术版本)。我不知道PHP存在的任何内容。
发现操作中涉及的代码的另一种方法是运行测试覆盖率工具。这样的工具标记了针对特定操作执行的所有代码(跨多个文件)(通常是“单元测试”,但测试覆盖工具实际上并不关心)。然后,您只需执行您关心的操作,并查看测试覆盖率数据。图形显示将使您可以轻松查看执行的代码;你想要的部分埋藏在所有执行的代码中。 PHP Test Coverage tool确实存在,并且可以很好地显示所涵盖的代码。
答案 1 :(得分:1)
在查看新的/复杂的代码库时,我发现非常有用的一件事是使用具有某种代码智能的IDE。我使用php eclipse,它的作用是允许你通过超链接或弹出窗口跳转到函数和变量定义。这对于浏览庞大的项目非常有帮助,因为您无需手动搜索所有麻烦。
在你的情况下,使用php,最好的办法是找到一个拉入你的类别列表的页面的入口点。一旦找到,就可以使用eclipse扩展它所做的各种函数调用。作为初学者,以这种方式阅读代码非常有帮助,因为它会向您展示许多不同的做事方式。使用eclipse之类的额外好处是它提供了与PHP手册的集成。因此,只要您遇到一个您不知道的功能,您就可以将鼠标悬停在上面,查看手册,以及如何在上下文中使用它。
答案 2 :(得分:0)
如果您正在寻找某种类型的调试器,请查看XDebug或ZendDebugger。