3.9 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	nulib-base
Vrac
- 
classe de base profile_managerqui 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
 déterminer le genre de traitements que l'on peut offrir$result = ArrayTool::with($source) ->filterKey("key") ->filter("value") ->add("value", "key") ->addAll($iterable) ->all();
 
- 
syntaxe pour CTable: définition des en-têtes et des valeurs des colonnes dans la même expression 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 chaque élément de contenu défini header, body et footer $element = ["header" => [], "body" => [], "footer" => []];colspan peut être utilisé dans header, body ou footer. si spécifié dans $element, colspan s'applique à body # les deux suivants sont équivalents $element = ["myheader", "mybody", "colspan" => 2, "myfooter"]; $element = [ "header" => [ "content" => "myheader", ], "body" => [ "content" => "mybody", "colspan" => 2, ], "footer" => [ "content" => "myfooter", ], ];si $element est une fonction, il retourne la valeur de l'élement $element = function() { return ["header", "body"]; }clé "enabled" permet d'activer dynamiquement un élément $element = function() { return ["header", "body", "enabled" => $includeElement]; }clé "func" pour spécifier la fonction dans un contexte statique $element = ["func" => [My::class, "get_element"]];func n'est considéré que si $element était un tableau à la base s'il y a d'autres clés, elles sont fusionnées avec le résultat de $func() (dont les clés sont prioritaires) 
- 
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