Я новичок в 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
или любых других функций печати.
Есть ли способ печати из плагинов. Я использовал эти функции в основном коде в прошлом и, кажется, работает нормально.
Когда я отлаживаю Moodle, я обычно использую error_log
для печати сообщения прямо в журнале ошибок веб-сервера ( /var/log/apache2/error.log
в дистрибутиве, подобном Debian, с Apache).
Итак, чтобы проверить какую-то переменную, мне нужно использовать функцию, которая возвращает ее как строку. Что-то вроде этого:
error_log('My variable x is: ' . print_r($variable, true));
Или:
error_log('My variable x is: ' . var_export($variable, true));
Взгляните на этот вопрос для получения дополнительной информации: как я могу захватить результат var_dump в строку?
Это не проблема с отладочным сообщением от плагина. Это происходит из-за вывода сообщения перед запросом Ajax. Проверьте, есть ли какой-либо запрос ajax в конкретном плагине или на страницах Moodle по умолчанию. Для плагинов нет конкретных сообщений об отладке. Вы можете использовать любой php, встроенный в функции отладки.
Надеюсь это поможет.