Скажем прямо, debug_backtrace()
не очень debug_backtrace()
. Кто-нибудь кодировал обертку?
А какая ваша любимая var_dump()
(которую можно использовать в коммерческих проектах, поэтому нет GPL (хотя с LGPL все в порядке))
Смотрите также: Более симпатичная/информативная альтернатива Var_dump в PHP?
Шесть лет - и десять тысяч просмотров этого вопроса - позже, и я все еще использую это. Это не очень хорошо выглядит на экране, как Kint (что отлично).
Это простой текст, который я могу отправить себе по электронной почте в автоматических отчетах об ошибках и отображать в консоли разработчика браузера с помощью ChromePhp.
/**
* @brief Returns an HTML formatted string showing details of the backtrace
*
* Example:
*
* F:\Dropbox\programs\Xampp\htdocs\api\q.php:48 e(373, 'beer', 'curry')
* F:\Dropbox\programs\Xampp\htdocs\api\q.php:53 d(26366, 28255, 8364)
* F:\Dropbox\programs\Xampp\htdocs\api\q.php:58 c()
* F:\Dropbox\programs\Xampp\htdocs\api\q.php:63 b(1283, 15488, 29369)
* F:\Dropbox\programs\Xampp\htdocs\api\q.php:72 a(788, 6077, 25010)
*/
function FormatBacktrace()
{
$result = '<h4>Backtrace</h4>';
foreach (debug_backtrace() as $trace)
{
if ($trace['function'] ==__FUNCTION__)
continue;
$parameters = is_array($trace['args']) ? implode(", ",$trace['args']) : "";
if (array_key_exists('class', $trace))
$result .= sprintf("%s:%s %s::%s(%s)<br>",
$trace['file'],
$trace['line'],
$trace['class'],
$trace['function'],
$parameters);
else
$result .= sprintf("%s:%s %s(%s)<br>",
$trace['file'],
$trace['line'],
$trace['function'],
$parameters);
}
return $result;
}