addHtml(Html::tag('pre', $error->getTraceAsString())); } return $result; } /** * * @param Exception|Throwable|string $error * @return string */ public static function render($error) { return static::show($error)->render(); } /** * @param bool|null $show * @return bool */ public static function showTraces($show = null) { if ($show !== null) { self::$showTraces = (bool) $show; } return self::$showTraces; } /** * @deprecated Use {@link get_php_type()} instead */ public static function getPhpTypeName($any) { return get_php_type($any); } /** * @param Exception|Throwable $exception * @return string */ protected static function createMessageForException($exception) { $file = preg_split('/[\/\\\]/', $exception->getFile(), -1, PREG_SPLIT_NO_EMPTY) ?: []; $file = array_pop($file); return sprintf( '%s (%s:%d)', $exception->getMessage(), $file, $exception->getLine() ); } /** * @param string * @return HtmlDocument */ protected static function renderErrorMessage($message) { $output = new HtmlDocument(); $output->addHtml( Html::tag('div', ['class' => 'exception'], [ Html::tag('h1', [ Html::tag('i', ['class' => 'icon-bug']), // TODO: Translate? More hints? 'Oops, an error occurred!' ]), Html::tag('pre', $message) ]) ); return $output; } }