3

我有一个注册后会触发的 Joomla 插件。我遇到了问题,但不知道如何正确调试它,因为插件只发生在事件上。

到目前为止,我一直在使用默认的 Joomla 日志记录:

jimport('joomla.log.log');
JLog::addLogger(array('text_file' => 'myfile.log.php'));

JLog::add('The value is: '.$something);

这很好,但不适用于数组。如何将数组的内容转储到文件(或控制台)以查看发生了什么?目前它只会显示“数组”。

4

3 回答 3

8

那这个呢:

JLog::add('The value is: '.print_r($something, true));

print_r() 的第二个参数设置为 true 意味着它返回一个字符串而不是输出它

于 2013-03-27T23:51:22.683 回答
2

对于调试,最好的解决方案是使用与 XDebug 一起工作的 IDE(如带有 PDT 的 EclipseJet Brain 的 PhpStorm),但如果您尝试调试远程托管的 Joomla,它们并不总是实用的!网站。

在这种情况下,最好的解决方案之一是J!Dump,它可以让您显示所有数据类型,甚至弹出一个带有数据和进程树的调试窗口。

您可以在 Joomla! 的开发部分找到它!扩展目录 ( JED )

J!Dump 其他方法在Joomla!'s Doc 网站上的“如何调试代码”中讨论

于 2013-03-28T02:41:52.690 回答
0

您可以尝试缓冲以下输出var_dump()

[...]

ob_start();
var_dump($something);
$a=ob_get_contents();
ob_end_clean();

JLog::add('The value is: '.$a);

来源:http ://www.php.net/manual/de/function.var-dump.php#77234

于 2013-03-27T23:48:52.520 回答