59 lines
2.8 KiB
PHP
59 lines
2.8 KiB
PHP
<?php
|
|
namespace nulib\ref\schema;
|
|
|
|
class ref_schema {
|
|
/** @var array schéma des natures de schéma */
|
|
const NATURE_METASCHEMA = [
|
|
"nature" => ["string", null, "nature du schéma",
|
|
"pkey" => 0,
|
|
"allowed_values" => ["assoc", "list", "scalar"],
|
|
],
|
|
"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"],
|
|
"name" => ["?key", null, "identifiant de la valeur"],
|
|
"schema" => ["?array", null, "définition du schéma"],
|
|
];
|
|
|
|
/** @var array meta-schema d'un schéma de nature scalaire */
|
|
const SCALAR_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",
|
|
"" => ["assoc", "schema" => self::NATURE_METASCHEMA],
|
|
],
|
|
"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"],
|
|
"composite" => ["?bool", null, "ce champ fait-il partie d'une valeur composite?"],
|
|
];
|
|
|
|
const MESSAGES = [
|
|
"missing" => "{key}: Vous devez spécifier cette valeur",
|
|
"unavailable" => "{key}: Vous devez spécifier cette valeur",
|
|
"null" => "{key}: cette valeur ne doit pas être nulle",
|
|
"empty" => "{key}: cette valeur ne doit pas être vide",
|
|
"invalid" => "{key}: {orig}: cette valeur est invalide",
|
|
];
|
|
|
|
/** @var array meta-schema d'un schéma de nature associative */
|
|
const ASSOC_METASCHEMA = [
|
|
];
|
|
|
|
/** @var array meta-schema d'un schéma de nature liste */
|
|
const LIST_METASCHEMA = [
|
|
];
|
|
}
|