Información de depuración del complemento de Moodle

Soy un novato en Moodle. Intento crear un complemento local que haga las tareas (envío de correo electrónico) automáticamente cuando el usuario se inscribe / se inscribe.

Al desarrollar este complemento, bash hacer echo o print_r cierta información con fines de depuración y rastreo.

El código es tan simple como

 function perform_enrol($eventdata){ echo 'Hello World'; print_r($eventdata); return true; } 

Sin embargo, cuando se ejecuta el código, aparece el siguiente error:

 > 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 

Cuando comento el echo y print_r , el código funciona bien. El mismo problema continúa para print_object , debug o cualquier otra función de impresión.

¿Hay alguna forma específica de imprimir desde complementos? He utilizado estas funciones en el código central en el pasado y parece funcionar bien.

Cuando estoy depurando Moodle, generalmente uso error_log para imprimir el mensaje directamente en el registro de errores del servidor web ( /var/log/apache2/error.log en una distribución parecida a Debian con Apache).

Entonces, para inspeccionar alguna variable, necesito usar una función que la devuelva como una cadena. Algo como esto:

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

O:

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

Eche un vistazo a esta pregunta para obtener más información: ¿Cómo puedo capturar el resultado de var_dump en una cadena?

Este no es el problema con el mensaje de depuración del complemento. Esto se debe a la salida de un mensaje antes de una solicitud de Ajax. Compruebe si hay alguna solicitud de Ajax en el complemento específico o en las páginas predeterminadas de Moodle. No hay mensajes de depuración específicos para los complementos. Puede usar cualquier php integrado en funciones de depuración.

Espero que esto ayude.