modifs.mineures sans commentaires
This commit is contained in:
parent
c274adb6e6
commit
2a92a9a07e
@ -20,6 +20,8 @@
|
||||
* cela pourrait servir pour générer automatiquement des tables SQL
|
||||
* ou pour modéliser un schéma FSV
|
||||
|
||||
* support allowed_values
|
||||
|
||||
* valeurs composite/computed
|
||||
* analyse / vérification de la valeur complète après calcul du résultat, si
|
||||
tous les résultats sont bons
|
||||
|
@ -82,7 +82,15 @@ class AssocSchema extends Schema {
|
||||
# cf le code similaire dans AssocWrapper::__construct()
|
||||
$dontAnalyze = $value === null && $wrapper === null;
|
||||
if (!($wrapper instanceof AssocWrapper)) $wrapper = $this->newWrapper();
|
||||
|
||||
# le schéma peut contenir des paramètres par défaut
|
||||
$nature = $this->definition[""];
|
||||
foreach (array_keys(ref_schema::ASSOC_PARAMS_SCHEMA) as $key) {
|
||||
$value = $nature[$key] ?? null;
|
||||
if ($value !== null) $params[$key] = $value;
|
||||
}
|
||||
if ($params !== null) $wrapper->resetParams($params);
|
||||
|
||||
return $wrapper->reset($value, $valueKey, $dontAnalyze? ["analyze" => false]: null);
|
||||
}
|
||||
}
|
||||
|
@ -89,13 +89,13 @@ class AssocWrapper extends Wrapper {
|
||||
* @param AssocWrapper $wrapper
|
||||
*/
|
||||
static function _analyze(WrapperContext $context, Wrapper $wrapper, ?array $params): int {
|
||||
if ($context->ensureArray) {
|
||||
if ($params["ensure_array"] ?? $context->ensureArray) {
|
||||
$valueKey = $context->valueKey;
|
||||
$array = $context->input->get($valueKey);
|
||||
if ($array === null) $context->input->set([], $valueKey);
|
||||
}
|
||||
|
||||
if ($context->ensureAssoc) {
|
||||
if ($params["ensure_assoc"] ?? $context->ensureAssoc) {
|
||||
$context->input->ensureAssoc($context->schema->getKeys());
|
||||
}
|
||||
|
||||
@ -113,7 +113,7 @@ class AssocWrapper extends Wrapper {
|
||||
}
|
||||
}
|
||||
|
||||
#XXX supprimer les clés "missing" ou "unavailable"
|
||||
#XXX supprimer les clés "missing" ou "unavailable" sauf si $ensureKeys
|
||||
return $what;
|
||||
}
|
||||
|
||||
@ -122,8 +122,8 @@ class AssocWrapper extends Wrapper {
|
||||
* @param AssocWrapper $wrapper
|
||||
*/
|
||||
static function _normalize(WrapperContext $context, Wrapper $wrapper, ?array $params): bool {
|
||||
$ensureKeys = $context->ensureKeys;
|
||||
$ensureOrder = $context->ensureOrder;
|
||||
$ensureKeys = $params["ensure_keys"] ?? $context->ensureKeys;
|
||||
$ensureOrder = $params["ensure_order"] ?? $context->ensureOrder;
|
||||
if ($ensureKeys || $ensureOrder) {
|
||||
$schema = $context->schema;
|
||||
$keys = $schema->getKeys();
|
||||
|
@ -84,7 +84,15 @@ class ScalarSchema extends Schema {
|
||||
# cf le code similaire dans ScalarWrapper::__construct()
|
||||
$dontAnalyze = $value === null && $wrapper === null;
|
||||
if (!($wrapper instanceof ScalarWrapper)) $wrapper = $this->newWrapper();
|
||||
|
||||
# le schéma peut contenir des paramètres par défaut
|
||||
$nature = $this->definition[""];
|
||||
foreach (array_keys(ref_schema::SCALAR_PARAMS_SCHEMA) as $key) {
|
||||
$value = $nature[$key] ?? null;
|
||||
if ($value !== null) $params[$key] = $value;
|
||||
}
|
||||
if ($params !== null) $wrapper->resetParams($params);
|
||||
|
||||
return $wrapper->reset($value, $valueKey, $dontAnalyze? ["analyze" => false]: null);
|
||||
}
|
||||
}
|
||||
|
@ -13,9 +13,10 @@ class AssocSchemaTest extends TestCase {
|
||||
"assoc",
|
||||
"compute_func" => null,
|
||||
"validate_func" => null,
|
||||
"ensure_array" => false,
|
||||
"ensure_keys" => true,
|
||||
"ensure_order" => true,
|
||||
"ensure_array" => null,
|
||||
"ensure_assoc" => null,
|
||||
"ensure_keys" => null,
|
||||
"ensure_order" => null,
|
||||
],
|
||||
"schema" => null,
|
||||
"type" => [null],
|
||||
|
Loading…
Reference in New Issue
Block a user