nur-sery/src/php/content/Printer.php

32 lines
819 B
PHP

<?php
namespace nur\sery\php\content;
use nur\sery\php\func;
/**
* Class Printer: wrapper autour d'une instance de {@link IContent} qui affiche
* le contenu au lieu de le retourner
*
* cette classe est conçue pour wrapper des objets complexes dont le contenu est
* contruit au fur et à mesure: ainsi, les objets peuvent être utilisés tels
* quels dans un contenu, ou alors être wrappés si on veut simplement les
* afficher
*/
class Printer implements IPrintable {
function __construct(IContent $content) {
$this->content = $content;
}
protected IContent $content;
function print(): void {
$content = $this->content->getContent();
c::write($content);
}
function __call($name, $args) {
$content = func::call([$this->content, $name], ...$args);
c::write($content);
}
}