'; } } /** * Affiche ou retourne une variable formatée pour le débogage. * * @param mixed $var Variable à afficher. * @param string $label Étiquette pour identifier la variable (par défaut 'Dump'). * @param bool $echo Indique si la sortie doit être affichée (TRUE) ou retournée (FALSE). * @return string|null Contenu formaté si $echo est FALSE, sinon NULL. */ 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;
}
}
/**
* Convertit un objet en chaîne formatée pour le débogage.
*
* @param object $object Objet à convertir.
* @param string|null $_tab Indentation pour le formatage (optionnel).
* @return string Représentation formatée de l'objet.
*/
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();
}
/**
* Convertit un tableau en chaîne formatée pour le débogage.
*
* @param array $array Tableau à convertir.
* @param string|null $_tab Indentation pour le formatage (optionnel).
* @return string Représentation formatée du tableau.
*/
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();
}
/**
* Convertit une variable en chaîne de caractères pour le débogage.
*
* @param mixed $var La variable à convertir.
* @param string $label Une étiquette pour identifier la variable.
* @return string La représentation formatée de la variable.
*/
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();
}
/**
* Récupère la trace d'exécution sous forme de chaîne.
*
* @return string La trace d'exécution formatée.
*/
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;
}
/**
* Affiche un tableau formaté pour le débogage.
*
* @param array|null $_array Le tableau à afficher (optionnel).
* @param int|null $_exit Si défini, termine le script après l'affichage (optionnel).
*/
public static function print_r(?array $_array = NULL, ?int $_exit = NULL)
{
echo "EMPTY"; } else { echo "
";
print_r($_array);
echo "";
}
($_exit != NULL) ? exit() : NULL;
}
/**
* Vérifie si une chaîne contient du HTML.
*
* @param string $_string La chaîne à vérifier.
* @return bool TRUE si la chaîne contient du HTML, FALSE sinon.
*/
public static function isHtml(string $_string) : bool
{
$stripped_string = strip_tags($_string);
return $_string !== $stripped_string;
}
/**
* Génère un contenu HTML encapsulé dans un iframe.
*
* @param string $htmlContent Le contenu HTML à encapsuler.
* @return string Le contenu HTML complet avec iframe.
*/
public static function generateHtmlContent($htmlContent)
{
$id = md5(microtime());
return <<