\n"; } /** afficher telles quelles les valeurs des variables dans les logs d'erreurs */ static final function logv(...$values): void { foreach ($values as $value) { error_log(var_export($value, true)); } } /** * Formatter une liste de valeurs, et retourner une liste de lignes. * * Une valeur qui commence par "\n" provoque un retour à la ligne. Sinon, les * valeurs sont retournées telles quelles. */ static final function format_values(...$values): array { $lines = []; $parts = []; foreach ($values as $value) { if (is_string($value)) { if (substr($value, 0, 1) == "\n") { if ($parts) $lines[] = implode(" ", $parts); $parts = []; $value = substr($value, 1); if (!$value) continue; } $parts[] = $value; } else { $parts[] = var_export($value, true); } } if ($parts) $lines[] = implode(" ", $parts); return $lines; } /** * afficher un message composé de la valeur de plusieurs variables dans le * flux HTML. */ static final function out(...$values): void { $lines = self::format_values(...$values); if ($lines) { echo "\n"; } } /** * S'assurer que chaque ligne ne contient pas "\n", ce qui permet de les * afficher correctement dans les logs */ static final function split_lines($lines): array { $parts = []; foreach ($lines as $line) { $parts[] = explode("\n", $line); } return array_merge(...$parts); } /** * afficher un message composé de la valeur de plusieurs variables dans les * logs d'erreur. Une chaine "\n" permet de séparer les groupes de valeurs */ static final function log(...$values): void { $lines = self::format_values(...$values); $lines = self::split_lines($lines); #if ($lines) error_log(implode("\n", $lines)); # afficher chaque ligne à part; c'est plus lisible... foreach ($lines as $line) { error_log($line); } } /** afficher un message dans les logs d'erreurs uniquement si on est en mode DEBUG */ static final function logm(...$values): void { if (config::is_debug()) self::log(...$values); } }