modifs.mineures sans commentaires

This commit is contained in:
Jephté Clain 2025-03-18 10:48:50 +04:00
parent bb311708d7
commit 91e6c0dcd2
2 changed files with 13 additions and 5 deletions

View File

@ -5,6 +5,7 @@ use IteratorAggregate;
use nur\sery\wip\schema\_assoc\AssocResult; use nur\sery\wip\schema\_assoc\AssocResult;
use nur\sery\wip\schema\_list\ListResult; use nur\sery\wip\schema\_list\ListResult;
use nur\sery\wip\schema\_scalar\ScalarResult; use nur\sery\wip\schema\_scalar\ScalarResult;
use Throwable;
/** /**
* Class Result: résultat de l'analyse ou de la normalisation d'une valeur * Class Result: résultat de l'analyse ou de la normalisation d'une valeur
@ -17,6 +18,8 @@ use nur\sery\wip\schema\_scalar\ScalarResult;
* @property bool $normalized si la valeur est valide, est-elle normalisée? * @property bool $normalized si la valeur est valide, est-elle normalisée?
* @property string|null $messageKey clé de message si la valeur n'est pas valide * @property string|null $messageKey clé de message si la valeur n'est pas valide
* @property string|null $message message si la valeur n'est pas valide * @property string|null $message message si la valeur n'est pas valide
* @property Throwable|null $exception l'exception qui a fait échouer la
* validation le cas échéant
* @property string|null $origValue valeur originale avant extraction et analyse * @property string|null $origValue valeur originale avant extraction et analyse
* @property mixed|null $normalizedValue la valeur normalisée si elle est * @property mixed|null $normalizedValue la valeur normalisée si elle est
* disponible, null sinon. ce champ est utilisé comme optimisation si la valeur * disponible, null sinon. ce champ est utilisé comme optimisation si la valeur
@ -26,7 +29,7 @@ abstract class Result implements IteratorAggregate {
const KEYS = [ const KEYS = [
"resultAvailable", "resultAvailable",
"present", "available", "null", "valid", "normalized", "present", "available", "null", "valid", "normalized",
"messageKey", "message", "messageKey", "message", "exception",
"origValue", "normalizedValue", "origValue", "normalizedValue",
]; ];

View File

@ -100,7 +100,7 @@ class ScalarResult extends Result {
} }
} }
function setInvalid($value, ScalarSchema $schema, ?Throwable $t=null): int { function setInvalid($value, ScalarSchema $schema, ?Throwable $exception=null): int {
$this->resultAvailable = true; $this->resultAvailable = true;
$this->present = true; $this->present = true;
$this->available = true; $this->available = true;
@ -109,11 +109,12 @@ class ScalarResult extends Result {
$this->origValue = $value; $this->origValue = $value;
$this->messageKey = $messageKey = "invalid"; $this->messageKey = $messageKey = "invalid";
$message = $this->getMessage($messageKey, $schema); $message = $this->getMessage($messageKey, $schema);
if ($t !== null) { if ($exception !== null) {
$tmessage = ValueException::get_message($t); $tmessage = ValueException::get_message($exception);
if ($tmessage) $message = $tmessage; if ($tmessage) $message = $tmessage;
} }
$this->message = $message; $this->message = $message;
$this->exception = $exception;
return ref_analyze::INVALID; return ref_analyze::INVALID;
} }
@ -138,6 +139,10 @@ class ScalarResult extends Result {
} }
function throw(bool $throw): void { function throw(bool $throw): void {
if ($throw) throw new ValueException($this->message); if ($throw) {
$exception = $this->exception;
if ($exception !== null) throw $exception;
else throw new ValueException($this->message);
}
} }
} }