'; } } public static function dump($var, $label = 'Dump', $echo = true) { // Start output buffering ob_start(); echo "
";
        echo "$label: ";

        // Convert array or object to string
        if (is_array($var)) {
            print_r($var);
        } elseif (is_object($var)) {
            echo self::objectToString($var);
        } else {
            var_dump($var);
        }

        echo "
"; // Get the contents of the buffer $output = ob_get_clean(); // If echo is true, print the output if ($echo) { echo $output; } else { return $output; } } public static function objectToString($object, $_tab = NULL) { ob_start(); $tab = "    " . $_tab; echo "Object (" . get_class($object) . ")\n"; echo $_tab . "{\n"; foreach (get_object_vars($object) as $property => $value) { echo $tab . "[$property] => "; if (is_array($value)) { echo self::arrayToString($value, $tab); } elseif (is_object($value)) { echo self::objectToString($value, $tab); } else { echo "" . var_export($value, true) . "\n"; } } echo $_tab . "}\n"; return ob_get_clean(); } public static function arrayToString($array, $_tab = NULL) { ob_start(); $tab = "    ".$_tab; echo "Array\n"; echo $_tab . "(\n"; foreach ($array as $key => $value) { echo $tab . "[$key] => "; if (is_array($value)) { echo self::arrayToString($value, $tab); } elseif (is_object($value)) { echo self::objectToString($value, $tab); } else { echo "" . var_export($value, true) . "\n"; } } echo $_tab . ")\n"; return ob_get_clean(); } private static function variableToString($var, $label) { ob_start(); echo "$label: "; if (is_array($var) || is_object($var)) { print_r($var); } else { var_dump($var); } return ob_get_clean(); } public static function getTraces(){ $return = "Trace : "; // Obtenir la trace d'exĂ©cution $backtrace = debug_backtrace(); $nb = count($backtrace)-1; for ($i=$nb; $i > 0; $i--) { $return .= ($i != 0) ? "[".$backtrace[$i]["function"]."] " : NULL; $return .= str_replace(DOCUMENT_ROOT, '', $backtrace[$i]["file"]).":".$backtrace[$i]["line"]; $return .= ($i != 1) ? " >> " : NULL; } return $return; } public static function log($_message, $_mark = NULL) { $mark = "
"; $mark .= ($_mark != NULL) ? "
". $_mark . "
" : NULL; $mark .= self::getTraces(); $mark .= "
"; if($_message != NULL) { if(is_array($_message)){ self::$logs[] = $mark ."
" . self::arrayToString($_message) . "
"; } elseif(is_object($_message)){ self::$logs[] = $mark ."
" . self::objectToString($_message) . "
"; } elseif($mark != NULL){ self::$logs[] = $mark ."
" . $_message . "
"; } else { self::$logs[] = $_message; } } } public static function renderLogs() { //if (!empty(self::$logs)) { echo "
"; echo "
"; echo "PHP ". phpversion() . " | " . number_format(self::$closeTime, 4) . " secondes"; echo "
"; foreach (self::$logs as $log) { echo ($log != NULL) ? "
".nl2br($log)."
" : NULL; } echo "
"; echo " "; //} } public static function init() { // Register shutdown function to render logs at the end of the script execution register_shutdown_function(function () { self::renderLogs(); }); } public static function startTimer() { self::$startTime = microtime(true); } public static function endTimer() { self::$closeTime = microtime(true) - self::$startTime; } public static function getBadge(string $_link,string $_label){ return ''. $_label .''; } public static function printEnvironnement(){ echo (ENVIRONNEMENT != "PROD") ? " [" . ENVIRONNEMENT . "]" : NULL; } }