modifs.mineures sans commentaires
This commit is contained in:
		
							parent
							
								
									416d7a8972
								
							
						
					
					
						commit
						932da9e00b
					
				
							
								
								
									
										91
									
								
								doc/schema.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										91
									
								
								doc/schema.md
									
									
									
									
									
										Normal file
									
								
							@ -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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user