diff --git a/doc/schema.md b/src/schema/README.md similarity index 72% rename from doc/schema.md rename to src/schema/README.md index 05f8560..4320cdb 100644 --- a/doc/schema.md +++ b/src/schema/README.md @@ -76,7 +76,7 @@ const SCALAR_SCHEMA = [ "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", + "" => ["scalar"], "name" => "identifiant de la valeur", ]; ~~~ @@ -91,11 +91,12 @@ const SCALAR_SCHEMA2 = [ "type" => "string", "default" => null, "title" => "une valeur chaine", + "" => ["scalar"], ]; ~~~ -Si le schéma n'est pas dans sa forme normalisée, et que sa nature n'est pas -spécifiée, on considère que c'est un schéma de nature scalaire si: +Si la nature du schéma n'est pas spécifiée, on considère que c'est un schéma de +nature scalaire si: * c'est une chaine, qui représente alors le type, e.g `"string"` * c'est un tableau avec un unique élément à l'index 0 de type chaine, qui est aussi le type, e.g `["string"]` @@ -107,7 +108,8 @@ normalisées et correspondent à différents états de la valeur tels qu'analys par `checker_func` ~~~php const MESSAGE_SCHEMA = [ - "absent" => "message si la valeur n'existe pas et qu'elle est requise", + "missing" => "message si la valeur n'existe pas dans la source et qu'elle est requise", + "unavailable" => "message si la valeur vaut false dans la source et qu'elle est requise", "null" => "message si la valeur est nulle et qu'elle n'est pas nullable", "empty" => "message si la valeur est une chaine vide et que ce n'est pas autorisé", "invalid" => "message si la valeur est invalide", @@ -120,13 +122,13 @@ Une liste est modélisée de cette manière: ~~~php const LIST_SCHEMA = [ ITEM_SCHEMA, - "" => "nature du schéma: list", + "" => ["list"], ]; ~~~ où ITEM_SCHEMA est le schéma des éléments de la liste -Si le schéma n'est pas dans sa forme normalisée, et que sa nature n'est pas -spécifiée, on considère que c'est un schéma de nature liste si: +Si la nature du schéma n'est pas spécifiée, on considère que c'est un schéma de +nature liste si: * c'est un tableau avec un unique élément de type tableau à l'index 0, e.g `[["string", null, "required" => true]]` @@ -137,14 +139,14 @@ Un tableau associatif est modélisée de cette manière: const LIST_SCHEMA = [ KEY => VALUE_SCHEMA, ... - "" => "nature du schéma: assoc", + "" => ["assoc"], ]; ~~~ où l'ensemble des occurrences de `KEY => VALUE_SCHEMA` définit le schéma de la valeur dont la clé est `KEY` -Si le schéma n'est pas dans sa forme normalisée, et que sa nature n'est pas -spécifiée, on considère que c'est un schéma de nature associative si: +Si la nature du schéma n'est pas spécifiée, on considère que c'est un schéma de +nature associative si: * c'est un tableau uniquement associatif avec aucun élément séquentiel, e.g `["name" => "string", "age" => "int"]` @@ -154,21 +156,7 @@ S'il s'agit d'une valeur scalaire, il y a quelques clés de définitions supplémentaires: ~~~php const VALUE_SCHEMA = [ - # recopié de SCALAR_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", - "required" => "la valeur est-elle requise? si oui, elle doit exister", - "nullable" => "si la valeur existe, peut-elle être nulle?", - "desc" => "description de la valeur", - "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", - "name" => "identifiant de la valeur", - # spécifique à VALUE_SCHEMA + ... "pkey" => "chemin de clé de la valeur dans le tableau associatif", "header" => "nom de l'en-tête s'il faut présenter cette donnée dans un tableau", "composite" => "ce champ fait-il partie d'une valeur composite?", @@ -179,13 +167,7 @@ Pour une liste, il y a quelques clés de définitions supplémentaires: ~~~php const VALUE_SCHEMA = [ "" => ["list", - # recopié de LIST_SCHEMA - "title" => "libellé de la valeur", - "required" => false, - "nullable" => true, - "desc" => "description de la valeur", - "name" => "identifiant de la valeur", - # spécifique à VALUE_SCHEMA + ... "pkey" => "chemin de clé de la valeur dans le tableau associatif", ], ]; @@ -195,13 +177,7 @@ Pour une tableau associatif, il y a quelques clés de définitions supplémentai ~~~php const VALUE_SCHEMA = [ "" => ["assoc", - # recopié de ASSOC_SCHEMA - "title" => "libellé de la valeur", - "required" => false, - "nullable" => true, - "desc" => "description de la valeur", - "name" => "identifiant de la valeur", - # spécifique à VALUE_SCHEMA + ... "pkey" => "chemin de clé de la valeur dans le tableau associatif", ], ];