关于php:来自Moodle插件的调试信息

Debug Info from Moodle Plugin

我是个新来的闲聊的人。我正在尝试创建一个本地插件,当用户注册/取消注册时,它将自动执行任务(发送电子邮件)。

在开发这个插件的过程中,我尝试使用echoprint_r一些用于调试和跟踪的信息。

代码非常简单

1
2
3
4
5
function perform_enrol($eventdata){
        echo 'Hello World';
        print_r($eventdata);
        return true;
}

但是,当代码执行时,会出现以下错误:

1
2
3
> 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

当我评论echoprint_r时,代码工作正常。同样的问题仍然存在于print_objectdebug或任何其他打印功能中。

有没有从插件打印的特定方法?我以前在核心代码中使用过这些函数,并且似乎工作得很好。


在调试moodle时,我通常使用error_log来打印Web服务器错误日志(/var/log/apache2/error.log在类似debian的分布中使用apache)。

所以,为了检查某个变量,我需要使用一个函数将它作为字符串返回。像这样:

1
error_log('My variable x is: ' . print_r($variable, true));

或:

1
error_log('My variable x is: ' . var_export($variable, true));

查看这个问题了解更多信息:如何捕获var_dump到字符串的结果?


这不是来自插件的调试消息的问题。这是由于在Ajax请求之前输出消息。请检查特定插件或moodle默认页面中是否存在任何Ajax请求。没有特定于插件的调试消息。您可以使用任何PHP内置调试函数。

希望这有帮助。