您的位置:首页 > 编程语言

Xdebug文档(五) 代码覆盖分析

2016-06-16 11:13 169 查看
代码覆盖分析能在请求时让你知道脚本哪一行(或哪一段)在执行。

[b]相关设置[/b]

xdebug.coverage_enable

类型:boolean,默认值:1,始于

Xdebug>=2.2

如果设为0,Xdebug不会设置内置结构来允许代码分析,这能加速xdebug快些,不过代码覆盖分析将不会工作。

相关函数

booleanxdebug_code_coverage_started()

返回布尔值查看代码覆盖分析是否已经开始。

Example:

<?php
var_dump(xdebug_code_coverage_started());

xdebug_start_code_coverage();

var_dump(xdebug_code_coverage_started());
?>


Returns:

bool(false)

bool(true)



arrayxdebug_get_code_coverage()

返回一结构包含脚本哪一行(包括引用文件)在执行。以下展示代码覆盖指定某一文件示例:

Example:

<?php
xdebug_start_code_coverage();

functiona($a){
echo$a*2.5;
}

functionb($count){
for($i=0;$i<$count;$i++){
a($i+0.17);
}
}

b(6);
b(10);

var_dump(xdebug_get_code_coverage());
?>


Returns:

array

'/home/httpd/html/test/xdebug/docs/xdebug_get_code_coverage.php'=>

array

5=>int1

6=>int1

7=>int1

9=>int1

10=>int1

11=>int1

12=>int1

13=>int1

15=>int1

16=>int1

18=>int1

voidxdebug_start_code_coverage([intoptions])

开始代码覆盖分析

该函数开始收集代码覆盖信息。该信息由二维数组形成,一维索引为执行文件名二级索引为行号。元素值表示该行是否被执行或它拥有未能到达的行。

每行返回的值:

1:该行已执行过

-1:该行未被执行

-2:该行没有可执行的代码

-1值只有在XDEBUG_CC_UNUSED开启后才会返回,而-2值只有XDEBUG_CC_UNUSED和XDEBUG_CC_DEAD_CODE同时开启才会返回。

函数有两个以枚举值的选项:

XDEBUG_CC_UNUSED

开启检测代码并说明哪行为可执行代码。无此项则返回的数组只包含实际执行过的行号。

XDEBUG_CC_DEAD_CODE

开始额外的分析说明哪些代码能被执行。

如果开启这些选项执行大幅减慢代码覆盖分析速度。

以下示例展示如何使用选项:

Example:

<?php
xdebug_start_code_coverage(XDEBUG_CC_UNUSED|XDEBUG_CC_DEAD_CODE);
?>


voidxdebug_stop_code_coverage([intcleanup=true])

停止代码覆盖分析

该函数停止收集信息,该信息在内存中会被清除。如果你传递“false”参数,则代码覆盖信息不会被清除而能让你再次使用xdebug_start_code_coverage()恢复信息收集。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: