32 lines
819 B
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);
|
|
}
|
|
}
|