我是Moodle的新手。我正在尝试创建一个本地插件,当用户注册/未注册时,它会自动执行任务(发送电子邮件)。
在开发此插件时,我尝试echo
或print_r
一些信息用于调试和跟踪。
代码就像
一样简单function perform_enrol($eventdata){
echo 'Hello World';
print_r($eventdata);
return true;
}
但是,当代码执行时,我会收到以下错误:
> Syntax Error File:
> http://192.168.10.60/moodle/theme/yui_combo.php?3.9.1/build/simpleyui/simpleyui.js&3.9.1/build/loader/loader.js
> Line: 18541
当我发表评论echo
和print_r
时,代码运行正常。
print_object
,debug
或任何其他打印功能也会出现同样的问题。
是否有特定的方法从插件打印。我过去在核心代码中使用过这些函数,似乎工作正常。
答案 0 :(得分:4)
当我调试Moodle时,我通常使用error_log
将消息直接打印到Web服务器的错误日志中({(1}}与Apache的类似Debian的发行版中)。
因此,要检查一些变量,我需要使用一个将其作为字符串返回的函数。像这样:
/var/log/apache2/error.log
或者:
error_log('My variable x is: ' . print_r($variable, true));
请查看此问题以获取更多信息:How can I capture the result of var_dump to a string?
答案 1 :(得分:0)
这不是来自插件的调试消息的问题。这是因为在Ajax请求之前输出消息。请检查特定插件或Moodle默认页面中是否有任何ajax请求。没有特定于插件的特定调试消息。您可以使用任何内置的调试功能。
希望这有帮助。