diff --git a/src/php/content/IStaticContent.php b/src/php/content/IStaticContent.php deleted file mode 100644 index 5e7328b..0000000 --- a/src/php/content/IStaticContent.php +++ /dev/null @@ -1,9 +0,0 @@ -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); + } +} diff --git a/src/php/content/README.md b/src/php/content/README.md index 7070b36..e054496 100644 --- a/src/php/content/README.md +++ b/src/php/content/README.md @@ -11,14 +11,14 @@ le contenu final est résolu selon les règles suivantes: d'incidence - les éléments scalaires ou instance d'objets sont pris tels quels - les Closure sont appelés dès la résolution, et leur valeur de retour est - considéré comme un contenu statique inséré tel quel dans le flux i.e dans - l'exemple suivant $c1 et $c2 sont équivalents: + considéré comme un contenu *statique* inséré tel quel dans le flux i.e dans + l'exemple suivant $c1 et $c2 sont globalement équivalents: ~~~php $closure = function() { ... } $c1 = [...$before, $closure, ...$after]; $c2 = [...$before, ...c::q($closure()), ...$after]; - # la différence est que $c2 n'est évalué que lors de la résolution du - # contenu + # $c1 == $c2, sauf si $closure() retourne des valeurs qui peuvent être + # considérées comme du contenu dynamique ~~~ - les tableaux représentent un traitement dynamique: appel de fonction, instanciation, etc. le contenu effectif n'est évalué que lors de l'affichage @@ -28,7 +28,8 @@ Les syntaxes possibles sont: `[[], $args...]` : contenu statique: les valeurs $args... sont insérées dans le flux du contenu sans modification. c'est la seule façon d'insérer un tableau dans la liste des - valeurs + valeurs (on peut aussi utiliser une Closure, mais ce n'est pas toujours + possible, notamment si le contenu est une constante) `["class_or_function", $args...]` `[["class_or_function"], $args...]`