. /** * Ease of debugging tools * @package local_treestudyplan * @copyright 2023 P.M. Kuipers * @license https://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ namespace local_treestudyplan; use Exception; use JsonException; defined('MOODLE_INTERNAL') || die(); class debug { /** * @param $object Object to dump * @param $filename File to write to * @return any The object */ public static function &dump(&$object, $filename="/tmp/debug.log") { try { $f = fopen($filename, "a+"); try { $json = \json_encode($object, JSON_PRETTY_PRINT | JSON_THROW_ON_ERROR ); fwrite($f, $json."\n"); } catch (JsonException $x) { fwrite($f, "Error processing json: ". $x->getMessage()."\n"); fwrite($f, "Print_r dump: \n".print_r($object, true)."\n"); } } catch (\Exception $x) { } finally { fclose($f); } return $object; } /** * @param $object Object to dump * @param $filename File to write to * @return any The object */ public static function &print_r(&$object, $filename="/tmp/debug.log") { try { $f = fopen($filename, "a+"); fwrite($f, "Print_r dump: \n".print_r($object, true)."\n"); } catch (\Exception $x) { } finally { fclose($f); } } /** * @param $object Object to dump * @param $filename File to write to * @return any The object */ public static function write($text, $filename="/tmp/debug.log") { try { $f = fopen($filename, "a+"); fwrite($f, $text."\n"); } catch (\Exception $x) { } finally { fclose($f); } } }