62 lines
3.1 KiB
PHP
62 lines
3.1 KiB
PHP
<?php
|
|
namespace nulib\ref\schema;
|
|
|
|
class ref_schema {
|
|
/** @var array schéma des natures de schéma */
|
|
const NATURE_METASCHEMA = [
|
|
0 => ["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 = [
|
|
];
|
|
}
|