modifs.mineures sans commentaires

This commit is contained in:
Jephté Clain 2024-07-08 20:42:45 +04:00
parent 23b8dd7d19
commit dbb67bc3bc
1 changed files with 25 additions and 15 deletions

View File

@ -1,19 +1,21 @@
# nulib\web\content # nulib\web\content
un contenu web est un type spécial de contenu permettant de gérer aussi les un contenu de tag est un type spécial de contenu permettant de gérer aussi les
attributs avec une syntaxe particulière. attributs du tag avec une syntaxe particulière.
les règles diffèrent légèrement: les règles diffèrent légèrement d'un contenu classique:
- Si le contenu n'est pas un tableau: - Si le contenu n'est pas un tableau:
- une chaine est quotée avec `htmlspecialchars()` - une chaine est quotée avec `htmlspecialchars()`
- un scalaire ou une instance d'objet sont pris tels quels - un scalaire ou une instance d'objet sont pris tels quels
- Sinon, le contenu doit être un tableau, séquentiel ou associatif - Sinon, le contenu doit être un tableau, séquentiel ou associatif
- les Closure sont appelés dès la résolution, et leur valeur de retour est
inséré tel quel dans le flux
- les éléments séquentiels scalaires ou instance d'objets sont pris tels quels - les éléments séquentiels scalaires ou instance d'objets sont pris tels quels
- les éléments associatifs sont des attributs, et sont fusionnés le cas échéant - les éléments associatifs sont des attributs, et sont fusionnés le cas échéant
- les éléments séquentiels de type tableau séqentiel sont du contenu dynamique - les éléments séquentiels de type tableau sont évalues récursivement avec les
- les éléments séquentiels de type tableau associatif sont évalues mêmes règles (sauf la partie chaine quotée avec `htmlspecialchars()`)
récursivement avec les mêmes règles (sauf la partie chaine quotée avec - il n'y a pas de syntaxe pour les éléments dynamiques comme les contenus
`htmlspecialchars()`) classiques
Par exemple, les deux contenus web suivants sont équivalents: Par exemple, les deux contenus web suivants sont équivalents:
~~~php ~~~php
@ -22,31 +24,39 @@ $content1 = [
"before", "before",
"class" => "first", "class" => "first",
["class" => "second"], ["class" => "second"],
["func", "arg"], function() { return func($arg); },
"attr" => [
"static",
"true" => true,
"false" => false,
],
"after", "after",
]; ];
# donne le même résultat que: # donne le même résultat que:
$content2 = [ $content2 = [
"class" => "first second", "class" => "first second",
"attr" => "static true",
"before", "before",
func("arg"), ...cl::with(func("arg")),
"after", "after",
]; ];
~~~ ~~~
lors de la définition d'attributs, lors de la définition d'attributs,
- un tableau séquentiel est un appel de fonction - les valeurs séquentielles sont prises telles quelles
- un tableau associatif permet de faire des définitions conditionnelles - les valeurs associatives permettent de faire des définitions conditionnelles
- les Closure sont appelés dès la résolution, et leur valeur de retour est
inséré tel quel dans le flux
Par exemple, les deux contenus web suivants sont équivalents: Par exemple, les deux contenus web suivants sont équivalents:
~~~php ~~~php
# ce contenu: # ce contenu:
$content1 = [ $content1 = [
["class" => ["func", "arg"]], "class" => function() { return func($arg); },
]; ];
# donne le même résultat que: # donne le même résultat que:
$content2 = [ $content2 = [
"class" => func("arg"), "class" => func($arg),
]; ];
~~~ ~~~
De même, les deux contenus web suivants sont équivalents: De même, les deux contenus web suivants sont équivalents:
@ -54,12 +64,12 @@ De même, les deux contenus web suivants sont équivalents:
# si $is_primary && !$is_danger # si $is_primary && !$is_danger
# alors ce contenu: # alors ce contenu:
$content1 = [ $content1 = [
["class" => [ "class" => [
"btn", "btn",
"btn-primary" => $is_primary, "btn-primary" => $is_primary,
"btn-danger" => $is_danger, "btn-danger" => $is_danger,
"btn-default" => !$is_primary && !$is_danger, "btn-default" => !$is_primary && !$is_danger,
]], ],
]; ];
# donne le même résultat que: # donne le même résultat que:
$content2 = [ $content2 = [