Вход Регистрация
Файл: gapps/vendor/phpunit/phpunit/src/Util/Filter.php
Строк: 69
<?php
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

/**
 * Utility class for code filtering.
 *
 * @since Class available since Release 2.0.0
 */
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:%sn",
                        
$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;
    }
}
Онлайн: 0
Реклама