modifs.mineures sans commentaires
This commit is contained in:
parent
416d7a8972
commit
932da9e00b
|
@ -0,0 +1,91 @@
|
|||
# nulib\schema
|
||||
|
||||
objet: s'assurer que des données soit dans un type particulier, en les
|
||||
convertissant si nécessaire. la source de ces données peut-être diverse:
|
||||
formulaire web, résultat d'une requête SQL, flux CSV, etc. mais en définitive,
|
||||
les données qui sont traitées par du code PHP sont du bon type et au bon
|
||||
format, ou une erreur est levée.
|
||||
|
||||
## Schéma d'une valeur simple
|
||||
|
||||
Une valeur scalaire est modélisée de cette manière:
|
||||
~~~php
|
||||
const SIMPLE_SCHEMA = [
|
||||
"type" => "types autorisés de la valeur",
|
||||
"default" => "valeur par défaut si la valeur n'existe pas",
|
||||
"title" => "libellé de la valeur, utilisable par exemple dans un formulaire",
|
||||
"desc" => "description de la valeur",
|
||||
"required" => "la valeur est-elle requise? si oui, elle doit exister",
|
||||
"nullable" => "si la valeur existe, peut-elle être nulle?",
|
||||
"checker_func" => "une fonction qui vérifie une valeur et la classifie",
|
||||
"parser_func" => "une fonction qui analyse une chaine pour produire la valeur",
|
||||
"messages" => "messages à afficher en cas d'erreur d'analyse",
|
||||
"formatter_func" => "une fonction qui formatte la valeur pour affichage",
|
||||
"format" => "format à utiliser pour l'affichage",
|
||||
"" => "nature du schéma: scalar",
|
||||
];
|
||||
~~~
|
||||
|
||||
Le schéma d'une valeur simple peut avoir les formes suivantes:
|
||||
- la forme normalisée contient la nature de schéma qui vaut `scalar` et toutes
|
||||
les autres clés spécifiées ci-dessus
|
||||
- la forme habituelle qui a au moins une valeur de type chaine et d'index 0 pour le type
|
||||
|
||||
par exemple, les deux schémas suivants sont équivalents:
|
||||
~~~php
|
||||
const NORMALIZED = [
|
||||
"" => ["scalar"],
|
||||
"type" => "string",
|
||||
"default" => null,
|
||||
"title" => "valeur chaine",
|
||||
"desc" => "une description plus longue",
|
||||
"required" => false,
|
||||
"nullable" => true,
|
||||
...
|
||||
];
|
||||
const SIMPLE = [
|
||||
"?string", null, "valeur chaine",
|
||||
"desc" => "une valeur chaine quelconque",
|
||||
...
|
||||
];
|
||||
~~~
|
||||
|
||||
## Schéma d'une liste séquentielle
|
||||
|
||||
Une liste séquentielle est modélisée de cette manière:
|
||||
~~~php
|
||||
const LIST_SCHEMA = [SIMPLE_SCHEMA];
|
||||
~~~
|
||||
|
||||
Ce schéma a un unique élément d'index 0, qui représente le schéma de chaque
|
||||
élément de la liste
|
||||
|
||||
~~~php
|
||||
const NORMALIZED = [
|
||||
"" => ["list",
|
||||
"title" => "liste de valeurs chaines",
|
||||
"desc" => "une description plus longue",
|
||||
"required" => false,
|
||||
"nullable" => true,
|
||||
],
|
||||
ITEM_SCHEMA,
|
||||
];
|
||||
~~~
|
||||
|
||||
## Schéma d'un tableau associatif
|
||||
|
||||
|
||||
~~~php
|
||||
const NORMALIZED = [
|
||||
"" => ["assoc",
|
||||
"title" => "liste de valeurs chaines",
|
||||
"desc" => "une description plus longue",
|
||||
"required" => false,
|
||||
"nullable" => true,
|
||||
],
|
||||
KEY => VALUE_SCHEMA,
|
||||
...
|
||||
];
|
||||
~~~
|
||||
|
||||
-*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8:noeol:binary
|
Loading…
Reference in New Issue