4

我想编写一个规则来查找项目中所有公共未使用的功能。我已经复制并修改了原始的 UnusedPrivateMethod 以使其工作。但可惜它工作得太好了,找到了项目中的所有公共功能。

这样做是因为公共函数通常是从其他类调用的,并且规则的范围似乎在类级别。因此,在每个类中都没有使用公共函数,因此也是结果的一部分。

因此,我如何编写具有项目级别而不是类级别的上下文的规则的问题?

4

2 回答 2

2

不久前我遇到了同样的问题,最终为此进行了动态代码分析。基本上我运行我的网站一段时间,并有 xdebug 输出使用文件。为了解析所有这些,我创建了一个小工具PHPAnalyzer,它遍历这些文件并输出所有使用(或未使用)函数的统计信息。在这个统计中是它被调用的次数。该工具并未真正完善,欢迎任何贡献。

于 2013-07-22T06:35:52.213 回答
2

仅通过解析项目源代码来获取所有公共方法调用是不可能的,因为某些调用可以使用

call_user_func()

或者

$object->$method()

我建议您尽可能全面地使用单元测试来覆盖项目。当您执行它们时,您将获得代码覆盖率统计信息。它可以以易于阅读的形式呈现。您将看到哪些方法被调用,哪些未被使用。

是的,您将不得不花一些时间编写这些单元测试。但这完全值得。

看看php 单元测试代码覆盖率

于 2013-07-22T06:30:49.403 回答