83 lines
2.7 KiB
Markdown
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 |