public static function Error::formatBacktrace

public static Error::formatBacktrace(array $backtrace)

Formats a backtrace into a plain-text string.

The calls show values for scalar arguments and type names for complex ones.

Parameters

array $backtrace: A standard PHP backtrace.

Return value

string A plain-text line-wrapped string ready to be put inside <pre>.

File

core/lib/Drupal/Core/Utility/Error.php, line 151

Class

Error
Drupal error utility class.

Namespace

Drupal\Core\Utility

Code

public static function formatBacktrace(array $backtrace) {
  $return = '';

  foreach ($backtrace as $trace) {
    $call = array('function' => '', 'args' => array());

    if (isset($trace['class'])) {
      $call['function'] = $trace['class'] . $trace['type'] . $trace['function'];
    }
    elseif (isset($trace['function'])) {
      $call['function'] = $trace['function'];
    }
    else {
      $call['function'] = 'main';
    }

    if (isset($trace['args'])) {
      foreach ($trace['args'] as $arg) {
        if (is_scalar($arg)) {
          $call['args'][] = is_string($arg) ? '\'' . Xss::filter($arg) . '\'' : $arg;
        }
        else {
          $call['args'][] = ucfirst(gettype($arg));
        }
      }
    }

    $line = '';
    if (isset($trace['line'])) {
      $line = " (Line: {$trace['line']})";
    }

    $return .= $call['function'] . '(' . implode(', ', $call['args']) . ")$line\n";
  }

  return $return;
}

© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/core!lib!Drupal!Core!Utility!Error.php/function/Error::formatBacktrace/8.1.x