2023-12-03 22:10:18 +04:00
|
|
|
<?php
|
|
|
|
namespace nur;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Class out: des outils pour afficher des valeurs sur la sortie standard
|
|
|
|
*
|
|
|
|
* Cette classe offre des outils simples pour faciliter l'affichage de valeurs
|
|
|
|
* de type string, comme une version glorifiée de la commande <pre>echo</pre>
|
|
|
|
*
|
|
|
|
* @see \nur\co
|
|
|
|
* @see \nur\v\vo
|
|
|
|
*/
|
|
|
|
class out {
|
2024-10-04 14:22:43 +04:00
|
|
|
private static function _print(?string $prefix, string $sep, array $values, ?string $suffix): void {
|
2023-12-03 22:10:18 +04:00
|
|
|
if ($prefix !== null) echo $prefix;
|
|
|
|
echo implode($sep, $values);
|
|
|
|
if ($suffix !== null) echo $suffix;
|
|
|
|
}
|
|
|
|
|
|
|
|
/** écrire une suite de valeurs collées les unes aux autres */
|
|
|
|
static final function write(...$values): void {
|
|
|
|
self::_print(null, "", $values, null);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* afficher une suite de valeurs collées les unes aux autres suivies d'un saut
|
|
|
|
* à la ligne
|
|
|
|
*/
|
|
|
|
static final function wnl(...$values): void {
|
|
|
|
self::_print(null, "", $values, "\n");
|
|
|
|
}
|
|
|
|
|
|
|
|
/** écrire une suite de valeurs séparées par des espaces */
|
|
|
|
static final function print(...$values): void {
|
|
|
|
self::_print(null, " ", $values, null);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* afficher une suite de valeurs séparées par des espaces suivies d'un saut à
|
|
|
|
* la ligne
|
|
|
|
*/
|
|
|
|
static final function pnl(...$values): void {
|
|
|
|
self::_print(null, " ", $values, "\n");
|
|
|
|
}
|
|
|
|
|
|
|
|
const INDENT_STRING = " ";
|
|
|
|
|
|
|
|
static final function indent(int $level, ...$values): void {
|
|
|
|
$indent = str_repeat(static::INDENT_STRING, $level);
|
|
|
|
self::_print($indent, " ", $values, null);
|
|
|
|
}
|
|
|
|
|
|
|
|
static final function inl(int $level, ...$values): void {
|
|
|
|
$indent = str_repeat(static::INDENT_STRING, $level);
|
|
|
|
self::_print($indent, " ", $values, "\n");
|
|
|
|
}
|
|
|
|
}
|