Php 如何使用Xdebug帮助我查找死代码?

Php 如何使用Xdebug帮助我查找死代码?,php,phpunit,xdebug,dead-code,Php,Phpunit,Xdebug,Dead Code,当我运行PHPUnit测试时,Xdebug生成了一个很好的代码覆盖率报告,它精确地显示了我的每个PHP文件中每行代码的执行次数 我想在正常使用一周的情况下为我的网站获得相同的报告,这样我就可以在我的网站上找到可能不再使用的PHP行。不是运行PHP代码的单元测试,而是web服务器,但我应该能够得到相同的报告,对吗 如何设置Xdebug来收集数据并在实时站点上生成代码覆盖率报告?我将回答自己的问题。Xdebug提供了一个Xdebug\u start\u code\u coverage()调用来开始收

当我运行PHPUnit测试时,Xdebug生成了一个很好的代码覆盖率报告,它精确地显示了我的每个PHP文件中每行代码的执行次数

我想在正常使用一周的情况下为我的网站获得相同的报告,这样我就可以在我的网站上找到可能不再使用的PHP行。不是运行PHP代码的单元测试,而是web服务器,但我应该能够得到相同的报告,对吗


如何设置Xdebug来收集数据并在实时站点上生成代码覆盖率报告?

我将回答自己的问题。Xdebug提供了一个
Xdebug\u start\u code\u coverage()
调用来开始收集代码覆盖率信息,以及一个
Xdebug\u get\u code\u coverage()
调用来检索关于所覆盖代码的信息。这很容易适用于单元测试,因为您通常只关心在受控情况下运行一系列测试所涵盖的代码。(打开覆盖率,运行测试,然后得到覆盖率结果。)但对于web服务器应用程序上的任意点击,您可能需要在预发布中启动代码覆盖率,然后让postDispatch将统计数据写入数据库(或以其他方式存储),以便稍后将结果整理成报告。这不是由Xdebug处理的


Xdebug可以收集cachegrind格式的评测信息,所以我会看看是否可以使用它来帮助查找哪些代码没有被调用。

无论谁否决了我,请至少让我知道这个问题出了什么问题?我看到其他帖子说Xdebug可以用于此,但是我不知道如何让Xdebug开始收集代码覆盖率数据(说这是由debug.coverage\u enable控制的,它已经默认为on),或者在收集了一些数据之后,如何从中生成漂亮的HTML报告。PHPUnit今天正在生成这些报告,类似于Sonar和其他工具。我相信XDebug只是提供了覆盖率统计数据,而不是报告。为此,您必须通读XDebug手册。我也希望这样做:记录一个月内实时应用程序的所有函数调用/所有代码执行情况,并创建一个包含函数调用频率的报告。如果能够记录所有http请求以重播使用情况,那就太好了。你找到解决办法了吗?