1

如果 C/C++ 程序员想要整理大型 C 或 C++ 项目,那么他可以删除一些他认为可能是孤立的代码文件(*.c、*.h、*.cpp、...)。当他启动编译器并且它运行没有错误时,他是对的。当编译器由于需要删除的文件而引发错误时,程序员就可以确定大型项目确实需要特定的代码文件。

我们这里有一个大型 Web 项目,它是用 PHP 编写的。它由许多 PHP 文件和图像文件组成。问题是大型基于 PHP 的 Web 项目没有编译器。

这里的一个人在 10 或 15 年前读过一篇文章。本文展示了一种解决方案,可以为 PHP 项目获得与 C/C++ 项目的 C/C++ 程序员使用他的编译器所获得的结果相同的结果。他只记得这个解决方案存在的事实,但他丢失了那篇文章,他忘记了详细的解决方案。

有谁知道这样的解决方案是否存在?如果有,叫什么名字?有网址吗?搜索引擎等的关键词?

4

1 回答 1

3

不存在确切的解决方案。原因是 php 可以根据它可以产生的任何输出自由地做任何它想要的包含。这是不可能的(字面上)一般地确定可以是什么。

然而,一切都没有丢失,因为通常 php 程序不使用它,所以我们可以找到一组需要的文件,并假设其余的可能不需要。大多数情况下,我们会很幸运。

正确的谷歌术语是静态分析。我没有为 php 使用过任何此类工具,因此无法为您提供具体信息,但它们似乎确实存在。

另一种方法是制作一些涵盖您项目功能的测试用例,然后从中获取代码覆盖率报告。这更有可能遗漏一些东西,但仍然可以很好地了解使用了哪些部分。

于 2014-04-24T12:25:33.007 回答