我有一个Joomla插件,注册后会触发。我遇到了问题,但不知道如何正确调试它,因为插件只发生在事件上。
到目前为止,我一直在使用默认的Joomla日志记录:
jimport('joomla.log.log');
JLog::addLogger(array('text_file' => 'myfile.log.php'));
JLog::add('The value is: '.$something);
这很好但不适用于阵列。如何将数组的内容转储到文件(或控制台)以查看发生了什么?目前它只会显示“数组”。
答案 0 :(得分:6)
这个怎么样:
JLog::add('The value is: '.print_r($something, true));
print_r()的第二个参数设置为true表示它返回一个字符串而不是输出它
答案 1 :(得分:2)
对于调试,最佳解决方案是使用与XDebug一起使用的IDE(如Eclipse with PDT或Jet Brain's PhpStorm),但如果您尝试调试是远程托管的Joomla,它们并不总是实用的!网站。
在这种情况下,最好的解决方案之一是J!Dump,它可以让您显示所有数据类型,甚至可以使用数据和流程树弹出一个调试窗口。
你可以在Joomla的Development部分找到它!扩展程序目录(JED)
J!转储其他方法在How to debug your code
上的“Joomla!'s Doc's website”中讨论答案 2 :(得分:0)
您可以尝试缓冲var_dump()
的输出:
[...]
ob_start();
var_dump($something);
$a=ob_get_contents();
ob_end_clean();
JLog::add('The value is: '.$a);