Automattic\WooCommerce\Vendor\GraphQL\Error
FormattedError::toSafeTrace
Returns error trace as serializable array.
Method of the class: FormattedError{}
No Hooks.
Returns
Array
file?: string, line?: int, function?: string, call?: string,
}>
Usage
$result = FormattedError::toSafeTrace( $error ): array;
- $error(Throwable) (required)
- .
FormattedError::toSafeTrace() FormattedError::toSafeTrace code WC 10.9.1
public static function toSafeTrace(\Throwable $error): array
{
$trace = $error->getTrace();
if (
isset($trace[0]['function']) && isset($trace[0]['class'])
// Remove invariant entries as they don't provide much value:
&& ($trace[0]['class'] . '::' . $trace[0]['function'] === 'Automattic\WooCommerce\Vendor\GraphQL\Utils\Utils::invariant')
) {
array_shift($trace);
} elseif (! isset($trace[0]['file'])) {
// Remove root call as it's likely error handler trace:
array_shift($trace);
}
$formatted = [];
foreach ($trace as $err) {
$safeErr = [];
if (isset($err['file'])) {
$safeErr['file'] = $err['file'];
}
if (isset($err['line'])) {
$safeErr['line'] = $err['line'];
}
$func = $err['function'];
$args = array_map([self::class, 'printVar'], $err['args'] ?? []);
$funcStr = $func . '(' . implode(', ', $args) . ')';
if (isset($err['class'])) {
$safeErr['call'] = $err['class'] . '::' . $funcStr;
} else {
$safeErr['function'] = $funcStr;
}
$formatted[] = $safeErr;
}
return $formatted;
}