45 lines
1.1 KiB
PHP
45 lines
1.1 KiB
PHP
|
<?php
|
||
|
namespace nur;
|
||
|
|
||
|
use nur\b\ui\IContent;
|
||
|
use nur\b\ui\IPrintable;
|
||
|
|
||
|
/**
|
||
|
* Class co: affichage générique de données formatées avec {@link c}
|
||
|
*/
|
||
|
class co {
|
||
|
/** afficher la chaine correspondant au tableau $vs applati */
|
||
|
static final function _write(?iterable $vs): void {
|
||
|
if ($vs === null) return;
|
||
|
foreach (c::flatten($vs) as $v) {
|
||
|
if ($v instanceof IPrintable) {
|
||
|
$v->print();
|
||
|
} elseif ($v instanceof IContent) {
|
||
|
self::_write($v->getContent());
|
||
|
} else {
|
||
|
echo $v;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/** afficher $vs suivi d'un saut à la ligne */
|
||
|
static final function _print(?iterable $vs): void {
|
||
|
if ($vs === null) return;
|
||
|
$print_nl = false;
|
||
|
foreach (c::flatten($vs) as $v) {
|
||
|
if ($v instanceof IPrintable) {
|
||
|
$v->print();
|
||
|
} elseif ($v instanceof IContent) {
|
||
|
self::_write($v->getContent());
|
||
|
} else {
|
||
|
echo $v;
|
||
|
}
|
||
|
$print_nl = true;
|
||
|
}
|
||
|
if ($print_nl) echo "\n";
|
||
|
}
|
||
|
|
||
|
static final function write($vs): void { self::_write(c::nq($vs)); }
|
||
|
static final function print($vs): void { self::_print(c::nq($vs)); }
|
||
|
}
|