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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user