class PHP_CodeCoverage_Driver_Xdebug in Zircon Profile 8
Same name and namespace in other branches
- 8.0 vendor/phpunit/php-code-coverage/src/CodeCoverage/Driver/Xdebug.php \PHP_CodeCoverage_Driver_Xdebug
Driver for Xdebug's code coverage functionality.
@since Class available since Release 1.0.0 @codeCoverageIgnore
Hierarchy
- class \PHP_CodeCoverage_Driver_Xdebug implements PHP_CodeCoverage_Driver
Expanded class hierarchy of PHP_CodeCoverage_Driver_Xdebug
8 string references to 'PHP_CodeCoverage_Driver_Xdebug'
- PHP_CodeCoverageTest::testConstructor in vendor/
phpunit/ php-code-coverage/ tests/ PHP/ CodeCoverageTest.php - @covers PHP_CodeCoverage::__construct @covers PHP_CodeCoverage::filter
- PHP_CodeCoverageTest::testConstructor2 in vendor/
phpunit/ php-code-coverage/ tests/ PHP/ CodeCoverageTest.php - @covers PHP_CodeCoverage::__construct @covers PHP_CodeCoverage::filter
- PHP_CodeCoverageTest::testMerge2 in vendor/
phpunit/ php-code-coverage/ tests/ PHP/ CodeCoverageTest.php - @covers PHP_CodeCoverage::getData @covers PHP_CodeCoverage::merge
- PHP_CodeCoverage_TestCase::getCoverageForBankAccount in vendor/
phpunit/ php-code-coverage/ tests/ TestCase.php - PHP_CodeCoverage_TestCase::getCoverageForBankAccountForFirstTwoTests in vendor/
phpunit/ php-code-coverage/ tests/ TestCase.php
File
- vendor/
phpunit/ php-code-coverage/ src/ CodeCoverage/ Driver/ Xdebug.php, line 17
View source
class PHP_CodeCoverage_Driver_Xdebug implements PHP_CodeCoverage_Driver {
/**
* Constructor.
*/
public function __construct() {
if (!extension_loaded('xdebug')) {
throw new PHP_CodeCoverage_Exception('This driver requires Xdebug');
}
if (version_compare(phpversion('xdebug'), '2.2.0-dev', '>=') && !ini_get('xdebug.coverage_enable')) {
throw new PHP_CodeCoverage_Exception('xdebug.coverage_enable=On has to be set in php.ini');
}
}
/**
* Start collection of code coverage information.
*/
public function start() {
xdebug_start_code_coverage(XDEBUG_CC_UNUSED | XDEBUG_CC_DEAD_CODE);
}
/**
* Stop collection of code coverage information.
*
* @return array
*/
public function stop() {
$data = xdebug_get_code_coverage();
xdebug_stop_code_coverage();
return $this
->cleanup($data);
}
/**
* @param array $data
* @return array
* @since Method available since Release 2.0.0
*/
private function cleanup(array $data) {
foreach (array_keys($data) as $file) {
unset($data[$file][0]);
if ($file != 'xdebug://debug-eval' && file_exists($file)) {
$numLines = $this
->getNumberOfLinesInFile($file);
foreach (array_keys($data[$file]) as $line) {
if (isset($data[$file][$line]) && $line > $numLines) {
unset($data[$file][$line]);
}
}
}
}
return $data;
}
/**
* @param string $file
* @return int
* @since Method available since Release 2.0.0
*/
private function getNumberOfLinesInFile($file) {
$buffer = file_get_contents($file);
$lines = substr_count($buffer, "\n");
if (substr($buffer, -1) !== "\n") {
$lines++;
}
return $lines;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
PHP_CodeCoverage_Driver:: |
constant | |||
PHP_CodeCoverage_Driver:: |
constant | |||
PHP_CodeCoverage_Driver:: |
constant | |||
PHP_CodeCoverage_Driver_Xdebug:: |
private | function | @since Method available since Release 2.0.0 | |
PHP_CodeCoverage_Driver_Xdebug:: |
private | function | @since Method available since Release 2.0.0 | |
PHP_CodeCoverage_Driver_Xdebug:: |
public | function |
Start collection of code coverage information. Overrides PHP_CodeCoverage_Driver:: |
1 |
PHP_CodeCoverage_Driver_Xdebug:: |
public | function |
Stop collection of code coverage information. Overrides PHP_CodeCoverage_Driver:: |
|
PHP_CodeCoverage_Driver_Xdebug:: |
public | function | Constructor. |