nur-sery/nur_src/out.php

58 lines
1.6 KiB
PHP

<?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 {
private static function _print(?string $prefix, string $sep, array $values, ?string $suffix): void {
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");
}
}