【问题标题】:Debug Info from Moodle Plugin来自 Moodle 插件的调试信息
【发布时间】:2023-03-28 13:38:02
【问题描述】:

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

在开发这个插件时,我试图echoprint_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

当我注释掉 echoprint_r 时,代码可以正常工作。 对于 print_objectdebug 或任何其他打印功能,同样的问题仍然存在。

是否有从插件打印的特定方法。我过去在核心代码中使用过这些函数,并且似乎工作正常。

【问题讨论】:

    标签: php javascript plugins moodle


    【解决方案1】:

    当我调试 Moodle 时,我通常使用error_log 将消息打印到 Web 服务器的错误日志中(/var/log/apache2/error.log 在带有 Apache 的类 Debian 发行版中)。

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

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

    或者:

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

    查看这个问题了解更多信息:How can I capture the result of var_dump to a string?

    【讨论】:

      【解决方案2】:

      这不是来自插件的调试消息的问题。这是因为在 Ajax 请求之前输出了一条消息。请检查特定插件或 Moodle 默认页面中是否有任何 ajax 请求。没有特定于插件的特定调试消息。您可以使用任何 php 内置的调试功能。

      希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-03
        • 1970-01-01
        • 2020-06-23
        • 1970-01-01
        • 2011-06-06
        • 1970-01-01
        相关资源
        最近更新 更多