37 lines
806 B
PHP
37 lines
806 B
PHP
|
<?php
|
||
|
namespace nur\mapper\item;
|
||
|
|
||
|
use nur\A;
|
||
|
use nur\mapper\base\Consumer;
|
||
|
use nur\msg;
|
||
|
|
||
|
class LoggerConsumer extends Consumer {
|
||
|
function section(string $title) {
|
||
|
msg::section($title);
|
||
|
}
|
||
|
|
||
|
static function to_string($item): string {
|
||
|
if (A::is_assoc($item)) {
|
||
|
$parts = [];
|
||
|
foreach ($item as $key => $part) {
|
||
|
$parts[] = "$key => ".self::to_string($part);
|
||
|
}
|
||
|
return "{ ".implode(", ", $parts)." }";
|
||
|
} elseif (A::is_seq($item)) {
|
||
|
$parts = [];
|
||
|
foreach ($item as $key => $part) {
|
||
|
$parts[] = self::to_string($part);
|
||
|
}
|
||
|
return implode(", ", $parts);
|
||
|
} elseif (is_string($item)) {
|
||
|
return $item;
|
||
|
} else {
|
||
|
return var_export($item, true);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function cook($item) {
|
||
|
msg::info(self::to_string($item));
|
||
|
}
|
||
|
}
|