nur-ture/TODO.md

83 lines
2.7 KiB
Markdown

# TODO
* [ ] bbnurse -cmk supprime la classe dans nur\sery après l'avoir copié dans la
destination
## Vrac
* classe de base `profile_manager` qui permet de gérer des profils
* class Tool permettant d'appliquer un traitement à une valeur scalaire
* ArrayTool permet d'appliquer les traitement à tous les éléments du tableau
* les traitements sont une suite d'opérations à faire, ou de filtres à
appliquer, qui ne sont appliqués que lors du parcours effectif de la liste
* exemple
```php
$result = ArrayTool::with($source)
->filterKey("key")
->filter("value")
->add("value", "key")
->addAll($iterable)
->all();
```
déterminer le genre de traitements que l'on peut offrir
* syntaxe pour CTable: définition des en-têtes et des valeurs des colonnes dans
la même expression
~~~php
new CTable($rows, [
"contents" => [
## champ
["Nom", "nom"],
["Prénom", "prenom"],
## fonction
["Age", function(Cursor $cursor) {
return (new Date())->diff($cursor->row["date_naissance"]);
}],
## Pas de contenu
["Vide", null],
## Contenu dynamique
["Contenu", [
"before",
v::span("hello"),
Cursor::dyn("name"),
"after",
Cursor::dyn(function(Cursor $cursor) {
return $cursor["surname"];
}),
]],
## colspan
["First",
function() { return "sur deux colonnes"; },
"colspan" => 2,
],
["Second", null],
## colspan dynamique
# la valeur de Element n'est évaluée que si colspan==null
["Groupe", function(Cursor $row) {
$break = $breaker->shouldBreakOn($row["code_groupe"]));
if ($break) {
$row->set("colspan", 2);
return "{$row["code_groupe"]} {$row["libelle_groupe"]}";
} else {
$row->set("colspan", null);
return null;
}
}, "colspan" => function(Cursor $row) {
return $row->get("colspan");
}],
["Element", function(Cursor $row) {
return $row["libelle_element"];
}]
],
]);
~~~
bien entendu, bien que ce ne soit pas démontré ici, le premier argument
(l'en-tête) est un contenu, pas seulement une chaine
* Cursor::dyn permet d'insérer une valeur qui sera évaluée plus tard lors de la
résolution du contenu
* pour Cursor, CTable, etc., un paramètre "params_func" permet de générer une
partie des paramètres de façon dynamique.
c'est juste du sucre, c'est strictement équivalent à construire le tableau
des paramètres avant d'instancier l'objet.
-*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8:noeol:binary