95 lines
2.6 KiB
PHP
95 lines
2.6 KiB
PHP
<?php
|
|
namespace nur;
|
|
|
|
/**
|
|
* Class debug: outils pour afficher des valeurs dans les logs à des fins de
|
|
* débuggage
|
|
*/
|
|
class debug {
|
|
/** afficher telles quelles les valeurs des variables dans le flux HTML */
|
|
static final function outv(...$values): void {
|
|
echo "<!--\n";
|
|
foreach ($values as $value) {
|
|
var_export($value);
|
|
}
|
|
echo "\n-->\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";
|
|
echo implode("\n", $lines);
|
|
echo "\n-->\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);
|
|
}
|
|
}
|