我正在制作类似于Laravel的dd功能的自定义调试助手功能。我有一个helpers.php
文件,其中声明了该函数,该文件包含在我的项目中。这是函数的代码,虽然它并不重要:
/**
* Simply dumps all arguments and then dies, like Laravel's dd function
*/
function dd() {
$args = func_get_args();
foreach ($args as $arg) {
var_dump($arg);
}
die();
}
一切都很好,但有一点点不便。当我从我想要调试的文件调用函数时,我得到一个这样的行:/path/to/project/root/helpers.php:49:
显然如预期的那样表示在我的helpers.php
文件中调用var_dump的行。现在,理想情况下,我希望看到我调用dd
函数的代码引用。我知道这是一个非常小的问题,但我想知道是否有办法。
更新
对于未来读者的附注,幸运的是xdebug可以选择省略var_dump中的参考代码。为此,请将php.ini选项xdebug.overload_var_dump
设置为1(对我而言,默认情况下为2)。我个人在运行时这样做,因为我想在自定义转储ini_set("xdebug.overload_var_dump", "1");
因此,在关闭xdebug中的代码引用后,您可以添加debug_backtrace()
中自己的引用,如@JustOnUnderMillions所示:
$trace = debug_backtrace();
echo '<small>';
highlight_string($trace[0]['file'] . ':' . $trace[0]['line'] . ':' . PHP_EOL);
echo '</small>';