["string", null, "nature du schéma", "allowed_values" => ["scalar", "assoc", "list"], ], "compute_func" => ["?callable", null, "fonction qui calcule les valeurs des champs computed"], "validate_func" => ["?callable", null, "fonction qui vérifie la conformité de l'objet dans son ensemble"], ]; /** @var array meta-schéma d'une valeur */ const VALUE_METASCHEMA = [ "type" => ["array", null, "types possibles de la valeur", "required" => true], "default" => [null, null, "valeur par défaut si la valeur n'existe pas"], "title" => ["?string", null, "libellé de la valeur"], "required" => ["bool", false, "la valeur est-elle requise?"], "nullable" => ["?bool", null, "la valeur peut-elle être nulle?"], "desc" => ["?content", null, "description de la valeur"], "analyzer_func" => ["?callable", null, "fonction qui analyse une valeur entrante et indique comment la traiter"], "extractor_func" => ["?callable", null, "fonction qui extrait la valeur à analyser dans une chaine de caractère"], "parser_func" => ["?callable", null, "fonction qui analyse une chaine de caractères pour produire la valeur"], "normalizer_func" => ["?callable", null, "fonction qui normalise la valeur"], "messages" => ["?array", null, "messages à afficher en cas d'erreur d'analyse"], "formatter_func" => ["?callable", null, "fonction qui formatte la valeur pour affichage"], "format" => [null, null, "format à utiliser pour l'affichage"], "" => ["array", ["scalar"], "nature du schéma", "schema" => self::NATURE_METASCHEMA, ], "schema" => ["?array", null, "schéma de la valeur si c'est un array"], "name" => ["?string", null, "identifiant de la valeur"], "pkey" => ["?pkey", null, "chemin de clé de la valeur dans un tableau associatif"], "header" => ["?string", null, "nom de l'en-tête s'il faut présenter cette donnée dans un tableau"], "computed" => ["?bool", null, "ce champ est-il calculé? si oui, il n'est pas demandé en entrée ni validé"], ]; const MESSAGES = [ "missing" => "Vous devez spécifier cette valeur", "unavailable" => "Vous devez spécifier cette valeur", "null" => "Cette valeur ne doit pas être nulle", "empty" => "Cette valeur ne doit pas être vide", "invalid" => "Cette valeur est invalide", ]; /** @var array clés supplémentaires de schéma de la nature scalaire */ const SCALAR_NATURE_METASCHEMA = [ ]; /** @var array clés supplémentaires de schéma de la nature associative */ const ASSOC_NATURE_METASCHEMA = [ "ensure_array" => ["bool", false, "faut-il s'assurer que le tableau destination est non nul?"], "ensure_keys" => ["bool", true, "faut-il s'assurer que toutes les clés existent?"], "ensure_order" => ["bool", true, "faut-il s'assurer que les clés soient dans l'ordre?"], ]; /** @var array clés supplémentaires de schéma de la nature liste */ const LIST_NATURE_METASCHEMA = [ ]; }