代碼覆蓋分析能在請求時讓你知道腳本哪一行(或哪一段)在執行。
相關設置
xdebug.coverage_enable
類型: boolean, 默認值: 1, 始於
Xdebug >= 2.2
如果設為0, Xdebug不會設置內置結構來允許代碼分析,這能加速xdebug快些,不過代碼覆蓋分析將不會工作。
返回布爾值查看代碼覆蓋分析是否已經開始。
Example:
<?php var_dump(xdebug_code_coverage_started()); xdebug_start_code_coverage(); var_dump(xdebug_code_coverage_started()); ?>
Returns:
bool(false)
bool(true)
array xdebug_get_code_coverage()
返回一結構包含腳本哪一行(包括引用文件)在執行。以下展示代碼覆蓋指定某一文件示例:
Example:
<?php xdebug_start_code_coverage(); function a($a) { echo $a * 2.5; } function b($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 => int 1
6 => int 1
7 => int 1
9 => int 1
10 => int 1
11 => int 1
12 => int 1
13 => int 1
15 => int 1
16 => int 1
18 => int 1
void xdebug_start_code_coverage( [int options] )
開始代碼覆蓋分析
該函數開始收集代碼覆蓋信息。該信息由二維數組形成,一維索引為執行文件名二級索引為行號。元素值表示該行是否被執行或它擁有未能到達的行。
每行返回的值:
-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 ); ?>
void xdebug_stop_code_coverage( [int cleanup=true] )
停止代碼覆蓋分析
該函數停止收集信息,該信息在內存中會被清除。如果你傳遞“false”參數,則代碼覆蓋信息不會被清除而能讓你再次使用 xdebug_start_code_coverage() 恢復信息收集。