PMA\libraries\Error::processBacktrace PHP Method

processBacktrace() public static method

Process backtrace to avoid path disclossures, objects and so on
public static processBacktrace ( array $backtrace ) : array
$backtrace array backtrace
return array
    public static function processBacktrace($backtrace)
    {
        $result = array();
        $members = array('line', 'function', 'class', 'type');
        foreach ($backtrace as $idx => $step) {
            /* Create new backtrace entry */
            $result[$idx] = array();
            /* Make path relative */
            if (isset($step['file'])) {
                $result[$idx]['file'] = Error::relPath($step['file']);
            }
            /* Store members we want */
            foreach ($members as $name) {
                if (isset($step[$name])) {
                    $result[$idx][$name] = $step[$name];
                }
            }
            /* Store simplified args */
            if (isset($step['args'])) {
                foreach ($step['args'] as $key => $arg) {
                    $result[$idx]['args'][$key] = Error::getArg($arg, $step['function']);
                }
            }
        }
        return $result;
    }

Usage Example

 /**
  * Stores query data into session data for debugging purposes
  *
  * @param string         $query  Query text
  * @param object         $link   database link
  * @param object|boolean $result Query result
  * @param integer        $time   Time to execute query
  *
  * @return void
  */
 private function _dbgQuery($query, $link, $result, $time)
 {
     $dbgInfo = array();
     $error_message = $this->getError($link);
     if ($result == false && is_string($error_message)) {
         $dbgInfo['error'] = '<span style="color:red">' . htmlspecialchars($error_message) . '</span>';
     }
     $dbgInfo['query'] = htmlspecialchars($query);
     $dbgInfo['time'] = $time;
     // Get and slightly format backtrace, this is used
     // in the javascript console.
     // Strip call to _dbgQuery
     $dbgInfo['trace'] = Error::processBacktrace(array_slice(debug_backtrace(), 1));
     $dbgInfo['hash'] = md5($query);
     $_SESSION['debug']['queries'][] = $dbgInfo;
 }
All Usage Examples Of PMA\libraries\Error::processBacktrace