====== Debugging PHP ======
In the absence of an IDE (and particularly in a complex OO application like Dokuwiki) it's useful to be able to establish how you reached a particular point in the code. You can do this by acquiring a stack trace of the current call stack:
ob_start();
var_dump(debug_backtrace());
$result = ob_get_clean();
You can then output ''$result'' to the browser or to a log file.
Similarly when catching an exception:
try {
// do something that causes an exception
}
catch (Exception $e) {
ob_start();
var_dump($e->getTrace());
$result = ob_get_clean();
// ... then report $result somehow, e.g. by writing to a log file
}
===== Dokuwiki log file =====
To write it to the Dokuwiki log file:
- set config option ''allowdebug'';
-- write ''$result'' to ''data/cache/debug.log'' (see [[https://www.dokuwiki.org/devel:debugging|Debug Tools]]) with:
.. dbglog($result);
{{tag> php dokuwiki}}