class PHPUnit_Util_Filter in Zircon Profile 8
Same name and namespace in other branches
- 8.0 vendor/phpunit/phpunit/src/Util/Filter.php \PHPUnit_Util_Filter
Utility class for code filtering.
@since Class available since Release 2.0.0
Hierarchy
- class \PHPUnit_Util_Filter
Expanded class hierarchy of PHPUnit_Util_Filter
File
- vendor/
phpunit/ phpunit/ src/ Util/ Filter.php, line 16
View source
class PHPUnit_Util_Filter {
/**
* Filters stack frames from PHPUnit classes.
*
* @param Exception $e
* @param bool $asString
* @return string
*/
public static function getFilteredStacktrace(Exception $e, $asString = true) {
$prefix = false;
$script = realpath($GLOBALS['_SERVER']['SCRIPT_NAME']);
if (defined('__PHPUNIT_PHAR_ROOT__')) {
$prefix = __PHPUNIT_PHAR_ROOT__;
}
if ($asString === true) {
$filteredStacktrace = '';
}
else {
$filteredStacktrace = array();
}
if ($e instanceof PHPUnit_Framework_SyntheticError) {
$eTrace = $e
->getSyntheticTrace();
$eFile = $e
->getSyntheticFile();
$eLine = $e
->getSyntheticLine();
}
elseif ($e instanceof PHPUnit_Framework_Exception) {
$eTrace = $e
->getSerializableTrace();
$eFile = $e
->getFile();
$eLine = $e
->getLine();
}
else {
if ($e
->getPrevious()) {
$e = $e
->getPrevious();
}
$eTrace = $e
->getTrace();
$eFile = $e
->getFile();
$eLine = $e
->getLine();
}
if (!self::frameExists($eTrace, $eFile, $eLine)) {
array_unshift($eTrace, array(
'file' => $eFile,
'line' => $eLine,
));
}
$blacklist = new PHPUnit_Util_Blacklist();
foreach ($eTrace as $frame) {
if (isset($frame['file']) && is_file($frame['file']) && !$blacklist
->isBlacklisted($frame['file']) && ($prefix === false || strpos($frame['file'], $prefix) !== 0) && $frame['file'] !== $script) {
if ($asString === true) {
$filteredStacktrace .= sprintf("%s:%s\n", $frame['file'], isset($frame['line']) ? $frame['line'] : '?');
}
else {
$filteredStacktrace[] = $frame;
}
}
}
return $filteredStacktrace;
}
/**
* @param array $trace
* @param string $file
* @param int $line
* @return bool
* @since Method available since Release 3.3.2
*/
private static function frameExists(array $trace, $file, $line) {
foreach ($trace as $frame) {
if (isset($frame['file']) && $frame['file'] == $file && isset($frame['line']) && $frame['line'] == $line) {
return true;
}
}
return false;
}
}
Members
Name![]() |
Modifiers | Type | Description | Overrides |
---|---|---|---|---|
PHPUnit_Util_Filter:: |
private static | function | @since Method available since Release 3.3.2 | |
PHPUnit_Util_Filter:: |
public static | function | Filters stack frames from PHPUnit classes. |