modifs.mineures sans commentaires
This commit is contained in:
		
							parent
							
								
									80fab7e636
								
							
						
					
					
						commit
						587df17273
					
				| @ -1,18 +1,13 @@ | |||||||
| <?php | <?php | ||||||
| namespace nulib; | namespace nulib; | ||||||
| 
 | 
 | ||||||
| use nulib\A; | use nulib\app\cli\Application; | ||||||
| use nulib\app\LockFile; | use nulib\app\LockFile; | ||||||
| use nulib\app\RunFile; | use nulib\app\RunFile; | ||||||
| use nulib\cl; |  | ||||||
| use nulib\ExitError; |  | ||||||
| use nulib\os\path; | use nulib\os\path; | ||||||
| use nulib\os\sh; | use nulib\os\sh; | ||||||
| use nulib\php\func; | use nulib\php\func; | ||||||
| use nulib\str; |  | ||||||
| use nulib\ValueException; |  | ||||||
| use nur\cli\Application as nur_Application; | use nur\cli\Application as nur_Application; | ||||||
| use nulib\app\cli\Application; |  | ||||||
| 
 | 
 | ||||||
| class app { | class app { | ||||||
|   private static function isa_Application($app): bool { |   private static function isa_Application($app): bool { | ||||||
|  | |||||||
| @ -2,6 +2,7 @@ | |||||||
| namespace nulib\app\cli; | namespace nulib\app\cli; | ||||||
| 
 | 
 | ||||||
| use Exception; | use Exception; | ||||||
|  | use nulib\app; | ||||||
| use nulib\app\RunFile; | use nulib\app\RunFile; | ||||||
| use nulib\ExitError; | use nulib\ExitError; | ||||||
| use nulib\ext\yaml; | use nulib\ext\yaml; | ||||||
| @ -13,7 +14,6 @@ use nulib\ValueException; | |||||||
| use nur\cli\ArgsException; | use nur\cli\ArgsException; | ||||||
| use nur\cli\ArgsParser; | use nur\cli\ArgsParser; | ||||||
| use nur\config; | use nur\config; | ||||||
| use nulib\app; |  | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * Class Application: application de base |  * Class Application: application de base | ||||||
|  | |||||||
| @ -1,8 +1,6 @@ | |||||||
| <?php | <?php | ||||||
| namespace nulib\php\access; | namespace nulib\php\access; | ||||||
| 
 | 
 | ||||||
| use nulib\cl; |  | ||||||
| 
 |  | ||||||
| /** | /** | ||||||
|  * Class GetAccess: accès à une valeur de $_GET |  * Class GetAccess: accès à une valeur de $_GET | ||||||
|  */ |  */ | ||||||
|  | |||||||
| @ -1,8 +1,6 @@ | |||||||
| <?php | <?php | ||||||
| namespace nulib\php\access; | namespace nulib\php\access; | ||||||
| 
 | 
 | ||||||
| use ReflectionClass; |  | ||||||
| 
 |  | ||||||
| /** | /** | ||||||
|  * Interface IAccess: abstraction d'un accès complet à une valeur |  * Interface IAccess: abstraction d'un accès complet à une valeur | ||||||
|  */ |  */ | ||||||
|  | |||||||
| @ -3,7 +3,6 @@ namespace nulib\php\access; | |||||||
| 
 | 
 | ||||||
| use ArrayAccess; | use ArrayAccess; | ||||||
| use nulib\cl; | use nulib\cl; | ||||||
| use nulib\ref\schema\ref_schema; |  | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * Class KeyAccess: accès |  * Class KeyAccess: accès | ||||||
|  | |||||||
| @ -1,8 +1,6 @@ | |||||||
| <?php | <?php | ||||||
| namespace nulib\php\access; | namespace nulib\php\access; | ||||||
| 
 | 
 | ||||||
| use nulib\cl; |  | ||||||
| 
 |  | ||||||
| /** | /** | ||||||
|  * Class PostAccess: accès à une valeur de $_POST |  * Class PostAccess: accès à une valeur de $_POST | ||||||
|  */ |  */ | ||||||
|  | |||||||
| @ -5,7 +5,6 @@ use Exception; | |||||||
| use Generator; | use Generator; | ||||||
| use Iterator; | use Iterator; | ||||||
| use IteratorAggregate; | use IteratorAggregate; | ||||||
| use nulib\php\ICloseable; |  | ||||||
| use nulib\StopException; | use nulib\StopException; | ||||||
| use nulib\ValueException; | use nulib\ValueException; | ||||||
| use Traversable; | use Traversable; | ||||||
|  | |||||||
| @ -1,98 +1,67 @@ | |||||||
| <?php | <?php | ||||||
| namespace nulib\schema; | namespace nulib\schema; | ||||||
| 
 | 
 | ||||||
|  | use nulib\ref\schema\ref_analyze; | ||||||
| use nulib\ValueException; | use nulib\ValueException; | ||||||
| 
 | 
 | ||||||
| class ConsolidatedResult extends Result { | class ConsolidatedResult extends Result { | ||||||
|   function addMissingMessage(Wrapper $wrapper): void { |   protected int $highestResult; | ||||||
|     $this->resultAvailable = true; | 
 | ||||||
|  |   function reset(): void { | ||||||
|  |     parent::reset(); | ||||||
|  |     $this->highestResult = -1; | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   protected function _addMessage(Wrapper $wrapper, $prefix=null): void { | ||||||
|  |     $result = $wrapper->getResult(); | ||||||
|  |     $message = $this->message; | ||||||
|  |     if ($message) $message .= "\n"; | ||||||
|  |     if ($prefix !== null) $message .= "$prefix: "; | ||||||
|  |     $message .= $result->message; | ||||||
|  |     $this->message = $message; | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   function addMissingMessage(Wrapper $wrapper, $prefix=null): void { | ||||||
|  |     if ($this->highestResult < ref_analyze::MISSING) { | ||||||
|       $this->present = false; |       $this->present = false; | ||||||
|       $this->available = false; |       $this->available = false; | ||||||
|       $this->null = false; |       $this->null = false; | ||||||
|       $this->valid = false; |       $this->valid = false; | ||||||
|       $this->messageKey = "missing"; |       $this->messageKey = "missing"; | ||||||
|     $result = $wrapper->getResult(); |  | ||||||
|     $resultException = $result->exception; |  | ||||||
|     $resultMessage = $result->message; |  | ||||||
|     if ($resultException !== null) { |  | ||||||
|       $tmessage = ValueException::get_message($resultException); |  | ||||||
|       if ($tmessage) { |  | ||||||
|         if ($resultMessage !== null) $resultMessage .= ": "; |  | ||||||
|         $resultMessage .= $tmessage; |  | ||||||
|     } |     } | ||||||
|     } |     $this->_addMessage($wrapper, $prefix); | ||||||
|     $message = $this->message; |  | ||||||
|     if ($message) $message .= "\n"; |  | ||||||
|     $message .= $resultMessage; |  | ||||||
|     $this->message = $message; |  | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   function addUnavailableMessage(Wrapper $wrapper): void { |   function addUnavailableMessage(Wrapper $wrapper, $prefix=null): void { | ||||||
|     $this->resultAvailable = true; |     if ($this->highestResult < ref_analyze::UNAVAILABLE) { | ||||||
|       $this->present = true; |       $this->present = true; | ||||||
|       $this->available = false; |       $this->available = false; | ||||||
|       $this->null = false; |       $this->null = false; | ||||||
|       $this->valid = false; |       $this->valid = false; | ||||||
|       $this->messageKey = "unavailable"; |       $this->messageKey = "unavailable"; | ||||||
|     $result = $wrapper->getResult(); |  | ||||||
|     $resultException = $result->exception; |  | ||||||
|     $resultMessage = $result->message; |  | ||||||
|     if ($resultException !== null) { |  | ||||||
|       $tmessage = ValueException::get_message($resultException); |  | ||||||
|       if ($tmessage) { |  | ||||||
|         if ($resultMessage !== null) $resultMessage .= ": "; |  | ||||||
|         $resultMessage .= $tmessage; |  | ||||||
|     } |     } | ||||||
|     } |     $this->_addMessage($wrapper, $prefix); | ||||||
|     $message = $this->message; |  | ||||||
|     if ($message) $message .= "\n"; |  | ||||||
|     $message .= $resultMessage; |  | ||||||
|     $this->message = $message; |  | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   function addNullMessage(Wrapper $wrapper): void { |   function addNullMessage(Wrapper $wrapper, $prefix=null): void { | ||||||
|     $this->resultAvailable = true; |     if ($this->highestResult < ref_analyze::NULL) { | ||||||
|       $this->present = true; |       $this->present = true; | ||||||
|       $this->available = true; |       $this->available = true; | ||||||
|       $this->null = true; |       $this->null = true; | ||||||
|       $this->valid = false; |       $this->valid = false; | ||||||
|       $this->messageKey = "null"; |       $this->messageKey = "null"; | ||||||
|     $result = $wrapper->getResult(); |  | ||||||
|     $resultException = $result->exception; |  | ||||||
|     $resultMessage = $result->message; |  | ||||||
|     if ($resultException !== null) { |  | ||||||
|       $tmessage = ValueException::get_message($resultException); |  | ||||||
|       if ($tmessage) { |  | ||||||
|         if ($resultMessage !== null) $resultMessage .= ": "; |  | ||||||
|         $resultMessage .= $tmessage; |  | ||||||
|     } |     } | ||||||
|     } |     $this->_addMessage($wrapper, $prefix); | ||||||
|     $message = $this->message; |  | ||||||
|     if ($message) $message .= "\n"; |  | ||||||
|     $message .= $resultMessage; |  | ||||||
|     $this->message = $message; |  | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   function addInvalidMessage(Wrapper $wrapper): void { |   function addInvalidMessage(Wrapper $wrapper, $prefix=null): void { | ||||||
|     $this->resultAvailable = true; |     if ($this->highestResult < ref_analyze::INVALID) { | ||||||
|       $this->present = true; |       $this->present = true; | ||||||
|       $this->available = true; |       $this->available = true; | ||||||
|       $this->null = false; |       $this->null = false; | ||||||
|       $this->valid = false; |       $this->valid = false; | ||||||
|       $this->messageKey = "invalid"; |       $this->messageKey = "invalid"; | ||||||
|     $result = $wrapper->getResult(); |  | ||||||
|     $resultException = $result->exception; |  | ||||||
|     $resultMessage = $result->message; |  | ||||||
|     if ($resultException !== null) { |  | ||||||
|       $tmessage = ValueException::get_message($resultException); |  | ||||||
|       if ($tmessage) { |  | ||||||
|         if ($resultMessage !== null) $resultMessage .= ": "; |  | ||||||
|         $resultMessage .= $tmessage; |  | ||||||
|     } |     } | ||||||
|     } |     $this->_addMessage($wrapper, $prefix); | ||||||
|     $message = $this->message; |  | ||||||
|     if ($message) $message .= "\n"; |  | ||||||
|     $message .= $resultMessage; |  | ||||||
|     $this->message = $message; |  | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  | |||||||
| @ -39,7 +39,7 @@ class Result { | |||||||
|   public ?string $messageKey; |   public ?string $messageKey; | ||||||
|   public ?string $message; |   public ?string $message; | ||||||
|   public ?Throwable $exception; |   public ?Throwable $exception; | ||||||
|   public ?string $origValue; |   public $origValue; | ||||||
|   public $normalizedValue; |   public $normalizedValue; | ||||||
| 
 | 
 | ||||||
|   /** réinitialiser tous les objets résultats accessibles via cet objet */ |   /** réinitialiser tous les objets résultats accessibles via cet objet */ | ||||||
| @ -119,11 +119,9 @@ class Result { | |||||||
|     $this->valid = false; |     $this->valid = false; | ||||||
|     $this->origValue = $value; |     $this->origValue = $value; | ||||||
|     $this->messageKey = $messageKey = "invalid"; |     $this->messageKey = $messageKey = "invalid"; | ||||||
|     $message = $this->getMessage($messageKey, $schema); |     $message = null; | ||||||
|     if ($exception !== null) { |     if ($exception !== null) $message = ValueException::get_message($exception); | ||||||
|       $tmessage = ValueException::get_message($exception); |     if (!$message) $message = $this->getMessage($messageKey, $schema); | ||||||
|       if ($tmessage) $message = $tmessage; |  | ||||||
|     } |  | ||||||
|     $this->message = $message; |     $this->message = $message; | ||||||
|     $this->exception = $exception; |     $this->exception = $exception; | ||||||
|     return ref_analyze::INVALID; |     return ref_analyze::INVALID; | ||||||
|  | |||||||
| @ -12,8 +12,8 @@ use nulib\schema\_scalar\ScalarSchema; | |||||||
| use nulib\schema\types\IType; | use nulib\schema\types\IType; | ||||||
| use nulib\schema\types\tarray; | use nulib\schema\types\tarray; | ||||||
| use nulib\schema\types\tbool; | use nulib\schema\types\tbool; | ||||||
| use nulib\schema\types\tfunc; |  | ||||||
| use nulib\schema\types\tcontent; | use nulib\schema\types\tcontent; | ||||||
|  | use nulib\schema\types\tfunc; | ||||||
| use nulib\schema\types\tpkey; | use nulib\schema\types\tpkey; | ||||||
| use nulib\schema\types\trawstring; | use nulib\schema\types\trawstring; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -3,9 +3,9 @@ namespace nulib\schema\_assoc; | |||||||
| 
 | 
 | ||||||
| use nulib\cl; | use nulib\cl; | ||||||
| use nulib\ref\schema\ref_schema; | use nulib\ref\schema\ref_schema; | ||||||
| use nulib\ValueException; |  | ||||||
| use nulib\schema\Schema; | use nulib\schema\Schema; | ||||||
| use nulib\schema\Wrapper; | use nulib\schema\Wrapper; | ||||||
|  | use nulib\ValueException; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * Class AssocSchema |  * Class AssocSchema | ||||||
|  | |||||||
| @ -105,18 +105,21 @@ class AssocWrapper extends Wrapper { | |||||||
| 
 | 
 | ||||||
|     $result = $context->consolidatedResult; |     $result = $context->consolidatedResult; | ||||||
|     $result->setValid(); |     $result->setValid(); | ||||||
|     foreach ($context->keyWrappers as $keyWrapper) { |     foreach ($context->keyWrappers as $key => $keyWrapper) { | ||||||
|       $keyWrapper->analyze($params); |       $keyWrapper->analyze($params); | ||||||
|       if ($keyWrapper->isValid()) continue; |       if ($keyWrapper->isValid()) continue; | ||||||
|       $what = ref_analyze::INVALID; |       $what = ref_analyze::INVALID; | ||||||
|  |       #XXX utiliser si possible la description ou une autre valeur "user-friendly"
 | ||||||
|  |       # possibilité de sélectionner la valeur à utiliser dans $params?
 | ||||||
|  |       $prefix = $key; | ||||||
|       if (!$keyWrapper->isPresent()) { |       if (!$keyWrapper->isPresent()) { | ||||||
|         $result->addMissingMessage($keyWrapper); |         $result->addMissingMessage($keyWrapper, $prefix); | ||||||
|       } elseif (!$keyWrapper->isAvailable()) { |       } elseif (!$keyWrapper->isAvailable()) { | ||||||
|         $result->addUnavailableMessage($keyWrapper); |         $result->addUnavailableMessage($keyWrapper, $prefix); | ||||||
|       } elseif ($keyWrapper->isNull()) { |       } elseif ($keyWrapper->isNull()) { | ||||||
|         $result->addNullMessage($keyWrapper); |         $result->addNullMessage($keyWrapper, $prefix); | ||||||
|       } else { |       } else { | ||||||
|         $result->addInvalidMessage($keyWrapper); |         $result->addInvalidMessage($keyWrapper, $prefix); | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -2,9 +2,9 @@ | |||||||
| namespace nulib\schema\_list; | namespace nulib\schema\_list; | ||||||
| 
 | 
 | ||||||
| use nulib\ref\schema\ref_schema; | use nulib\ref\schema\ref_schema; | ||||||
| use nulib\ValueException; |  | ||||||
| use nulib\schema\Schema; | use nulib\schema\Schema; | ||||||
| use nulib\schema\Wrapper; | use nulib\schema\Wrapper; | ||||||
|  | use nulib\ValueException; | ||||||
| 
 | 
 | ||||||
| class ListSchema extends Schema { | class ListSchema extends Schema { | ||||||
|   /** @var array meta-schema d'un schéma de nature liste */ |   /** @var array meta-schema d'un schéma de nature liste */ | ||||||
|  | |||||||
| @ -1,11 +1,10 @@ | |||||||
| <?php | <?php | ||||||
| namespace nulib\schema\_scalar; | namespace nulib\schema\_scalar; | ||||||
| 
 | 
 | ||||||
| use nulib\cl; |  | ||||||
| use nulib\ref\schema\ref_schema; | use nulib\ref\schema\ref_schema; | ||||||
| use nulib\ValueException; |  | ||||||
| use nulib\schema\Schema; | use nulib\schema\Schema; | ||||||
| use nulib\schema\Wrapper; | use nulib\schema\Wrapper; | ||||||
|  | use nulib\ValueException; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * Class ScalarSchema |  * Class ScalarSchema | ||||||
|  | |||||||
| @ -1,11 +1,11 @@ | |||||||
| <?php | <?php | ||||||
| namespace nulib\schema\input; | namespace nulib\schema\input; | ||||||
| 
 | 
 | ||||||
| use nulib\ref\schema\ref_input; |  | ||||||
| use nulib\StateException; |  | ||||||
| use nulib\php\access\IAccess; | use nulib\php\access\IAccess; | ||||||
| use nulib\php\access\KeyAccess; | use nulib\php\access\KeyAccess; | ||||||
| use nulib\php\access\PropertyAccess; | use nulib\php\access\PropertyAccess; | ||||||
|  | use nulib\ref\schema\ref_input; | ||||||
|  | use nulib\StateException; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * Class Input: accès à une valeur |  * Class Input: accès à une valeur | ||||||
|  | |||||||
| @ -1,14 +1,13 @@ | |||||||
| <?php | <?php | ||||||
| namespace nulib\schema; | namespace nulib\schema; | ||||||
| 
 | 
 | ||||||
| use nulib\ValueException; |  | ||||||
| use nulib\schema\types\IType; | use nulib\schema\types\IType; | ||||||
| use nulib\schema\types\Registry; | use nulib\schema\types\Registry; | ||||||
| use nulib\schema\types\tarray; | use nulib\schema\types\tarray; | ||||||
| use nulib\schema\types\tbool; | use nulib\schema\types\tbool; | ||||||
| use nulib\schema\types\tfunc; |  | ||||||
| use nulib\schema\types\tcontent; | use nulib\schema\types\tcontent; | ||||||
| use nulib\schema\types\tfloat; | use nulib\schema\types\tfloat; | ||||||
|  | use nulib\schema\types\tfunc; | ||||||
| use nulib\schema\types\tint; | use nulib\schema\types\tint; | ||||||
| use nulib\schema\types\tkey; | use nulib\schema\types\tkey; | ||||||
| use nulib\schema\types\tmixed; | use nulib\schema\types\tmixed; | ||||||
| @ -17,6 +16,7 @@ use nulib\schema\types\traw; | |||||||
| use nulib\schema\types\trawstring; | use nulib\schema\types\trawstring; | ||||||
| use nulib\schema\types\tstring; | use nulib\schema\types\tstring; | ||||||
| use nulib\schema\types\ttext; | use nulib\schema\types\ttext; | ||||||
|  | use nulib\ValueException; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * Class types: classe outil pour gérer le registre de types |  * Class types: classe outil pour gérer le registre de types | ||||||
|  | |||||||
| @ -1,10 +1,10 @@ | |||||||
| <?php | <?php | ||||||
| namespace nulib\schema\types; | namespace nulib\schema\types; | ||||||
| 
 | 
 | ||||||
| use nulib\ValueException; |  | ||||||
| use nulib\schema\input\Input; | use nulib\schema\input\Input; | ||||||
| use nulib\schema\Result; | use nulib\schema\Result; | ||||||
| use nulib\schema\Schema; | use nulib\schema\Schema; | ||||||
|  | use nulib\ValueException; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * Interface IType: un type de données |  * Interface IType: un type de données | ||||||
|  | |||||||
| @ -1,9 +1,8 @@ | |||||||
| <?php | <?php | ||||||
| namespace nulib\schema\types; | namespace nulib\schema\types; | ||||||
| 
 | 
 | ||||||
| use nulib\StateException; |  | ||||||
| use nur\prop; |  | ||||||
| use nulib\schema\input\Input; | use nulib\schema\input\Input; | ||||||
|  | use nur\prop; | ||||||
| use nur\str; | use nur\str; | ||||||
| 
 | 
 | ||||||
| abstract class _tsimple implements IType { | abstract class _tsimple implements IType { | ||||||
|  | |||||||
| @ -2,7 +2,6 @@ | |||||||
| namespace nulib\schema\types; | namespace nulib\schema\types; | ||||||
| 
 | 
 | ||||||
| use nulib\cl; | use nulib\cl; | ||||||
| use nulib\ValueException; |  | ||||||
| use nulib\schema\_scalar\ScalarSchema; | use nulib\schema\_scalar\ScalarSchema; | ||||||
| use nulib\schema\Result; | use nulib\schema\Result; | ||||||
| use nulib\schema\Schema; | use nulib\schema\Schema; | ||||||
|  | |||||||
| @ -2,12 +2,12 @@ | |||||||
| namespace nulib\schema\types; | namespace nulib\schema\types; | ||||||
| 
 | 
 | ||||||
| use nulib\cl; | use nulib\cl; | ||||||
| use nulib\ValueException; |  | ||||||
| use nur\prop; |  | ||||||
| use nulib\schema\_scalar\ScalarSchema; | use nulib\schema\_scalar\ScalarSchema; | ||||||
| use nulib\schema\input\Input; | use nulib\schema\input\Input; | ||||||
| use nulib\schema\Result; | use nulib\schema\Result; | ||||||
| use nulib\schema\Schema; | use nulib\schema\Schema; | ||||||
|  | use nulib\ValueException; | ||||||
|  | use nur\prop; | ||||||
| 
 | 
 | ||||||
| class tbool extends _tformatable { | class tbool extends _tformatable { | ||||||
|   const NAME = "bool"; |   const NAME = "bool"; | ||||||
| @ -60,7 +60,7 @@ class tbool extends _tformatable { | |||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   function getMissingValue(?bool &$valid=null) { |   function getMissingValue(?bool &$valid=null) { | ||||||
|     $valid = !$this->nullable; |     $valid = false; | ||||||
|     return null; |     return null; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,10 +1,10 @@ | |||||||
| <?php | <?php | ||||||
| namespace nulib\schema\types; | namespace nulib\schema\types; | ||||||
| 
 | 
 | ||||||
| use nulib\ValueException; |  | ||||||
| use nulib\schema\_scalar\ScalarSchema; | use nulib\schema\_scalar\ScalarSchema; | ||||||
| use nulib\schema\Result; | use nulib\schema\Result; | ||||||
| use nulib\schema\Schema; | use nulib\schema\Schema; | ||||||
|  | use nulib\ValueException; | ||||||
| 
 | 
 | ||||||
| class tfloat extends _tformatable { | class tfloat extends _tformatable { | ||||||
|   const NAME = "float"; |   const NAME = "float"; | ||||||
|  | |||||||
| @ -3,10 +3,10 @@ namespace nulib\schema\types; | |||||||
| 
 | 
 | ||||||
| use Exception; | use Exception; | ||||||
| use nulib\php\func; | use nulib\php\func; | ||||||
| use nulib\ValueException; |  | ||||||
| use nulib\schema\_scalar\ScalarSchema; | use nulib\schema\_scalar\ScalarSchema; | ||||||
| use nulib\schema\Result; | use nulib\schema\Result; | ||||||
| use nulib\schema\Schema; | use nulib\schema\Schema; | ||||||
|  | use nulib\ValueException; | ||||||
| 
 | 
 | ||||||
| class tfunc extends _tsimple { | class tfunc extends _tsimple { | ||||||
|   const NAME = "func"; |   const NAME = "func"; | ||||||
|  | |||||||
| @ -1,11 +1,10 @@ | |||||||
| <?php | <?php | ||||||
| namespace nulib\schema\types; | namespace nulib\schema\types; | ||||||
| 
 | 
 | ||||||
| use nulib\ValueException; |  | ||||||
| use nulib\schema\_scalar\ScalarSchema; | use nulib\schema\_scalar\ScalarSchema; | ||||||
| use nulib\schema\input\Input; |  | ||||||
| use nulib\schema\Result; | use nulib\schema\Result; | ||||||
| use nulib\schema\Schema; | use nulib\schema\Schema; | ||||||
|  | use nulib\ValueException; | ||||||
| 
 | 
 | ||||||
| class tgeneric extends _tsimple { | class tgeneric extends _tsimple { | ||||||
|   function __construct(string $class, bool $nullable, ?array $params=null) { |   function __construct(string $class, bool $nullable, ?array $params=null) { | ||||||
|  | |||||||
| @ -1,10 +1,10 @@ | |||||||
| <?php | <?php | ||||||
| namespace nulib\schema\types; | namespace nulib\schema\types; | ||||||
| 
 | 
 | ||||||
| use nulib\ValueException; |  | ||||||
| use nulib\schema\_scalar\ScalarSchema; | use nulib\schema\_scalar\ScalarSchema; | ||||||
| use nulib\schema\Result; | use nulib\schema\Result; | ||||||
| use nulib\schema\Schema; | use nulib\schema\Schema; | ||||||
|  | use nulib\ValueException; | ||||||
| 
 | 
 | ||||||
| class tint extends _tformatable { | class tint extends _tformatable { | ||||||
|   const NAME = "int"; |   const NAME = "int"; | ||||||
|  | |||||||
| @ -1,10 +1,10 @@ | |||||||
| <?php | <?php | ||||||
| namespace nulib\schema\types; | namespace nulib\schema\types; | ||||||
| 
 | 
 | ||||||
| use nulib\str; |  | ||||||
| use nulib\schema\_scalar\ScalarSchema; | use nulib\schema\_scalar\ScalarSchema; | ||||||
| use nulib\schema\Result; | use nulib\schema\Result; | ||||||
| use nulib\schema\Schema; | use nulib\schema\Schema; | ||||||
|  | use nulib\str; | ||||||
| 
 | 
 | ||||||
| class trawstring extends _tstring { | class trawstring extends _tstring { | ||||||
|   const NAME = "rawstring"; |   const NAME = "rawstring"; | ||||||
|  | |||||||
| @ -6,6 +6,7 @@ use nulib\tests\TestCase; | |||||||
| use nulib\ValueException; | use nulib\ValueException; | ||||||
| use nulib\schema\_scalar\ScalarSchemaTest; | use nulib\schema\_scalar\ScalarSchemaTest; | ||||||
| use nulib\schema\Schema; | use nulib\schema\Schema; | ||||||
|  | use PHPStan\Type\Enum\EnumCaseObjectType; | ||||||
| 
 | 
 | ||||||
| class AssocSchemaTest extends TestCase { | class AssocSchemaTest extends TestCase { | ||||||
|   const NULL_SCHEMA = [ |   const NULL_SCHEMA = [ | ||||||
| @ -32,6 +33,8 @@ class AssocSchemaTest extends TestCase { | |||||||
|     "messages" => null, |     "messages" => null, | ||||||
|     "formatter_func" => null, |     "formatter_func" => null, | ||||||
|     "format" => null, |     "format" => null, | ||||||
|  |     "size" => null, | ||||||
|  |     "precision" => null, | ||||||
|     "name" => null, |     "name" => null, | ||||||
|     "pkey" => null, |     "pkey" => null, | ||||||
|     "header" => null, |     "header" => null, | ||||||
| @ -169,8 +172,8 @@ class AssocSchemaTest extends TestCase { | |||||||
|       "b" => false, |       "b" => false, | ||||||
|     ], $array); |     ], $array); | ||||||
| 
 | 
 | ||||||
|     // false équivaut à absent
 |     // false équivaut à absent, sauf pour "b" qui est de type bool
 | ||||||
|     $array = ["s" => false, "i" => false, "b" => null]; |     $array = ["s" => false, "i" => false, "b" => false]; | ||||||
|     $schema->getWrapper($array, null, ["ensure_keys" => true]); |     $schema->getWrapper($array, null, ["ensure_keys" => true]); | ||||||
|     self::assertSame([ |     self::assertSame([ | ||||||
|       "s" => "", |       "s" => "", | ||||||
| @ -178,9 +181,11 @@ class AssocSchemaTest extends TestCase { | |||||||
|       "b" => false, |       "b" => false, | ||||||
|     ], $array); |     ], $array); | ||||||
| 
 | 
 | ||||||
|     $array = ["s" => false, "i" => false, "b" => null]; |     $array = ["s" => false, "i" => false, "b" => false]; | ||||||
|     $schema->getWrapper($array, null, ["ensure_keys" => false]); |     $schema->getWrapper($array, null, ["ensure_keys" => false]); | ||||||
|     self::assertSame([], $array); |     self::assertSame([ | ||||||
|  |       "b" => false, | ||||||
|  |     ], $array); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   const STRING_SCHEMA = [ |   const STRING_SCHEMA = [ | ||||||
| @ -363,4 +368,29 @@ class AssocSchemaTest extends TestCase { | |||||||
|       $schema->getWrapper($array); |       $schema->getWrapper($array); | ||||||
|     }); |     }); | ||||||
|   } |   } | ||||||
|  | 
 | ||||||
|  |   function testMessage() { | ||||||
|  |     $schema = new AssocSchema([ | ||||||
|  |       "rs" => ["string", "required" => true], | ||||||
|  |       "i" => ["int"], | ||||||
|  |     ]); | ||||||
|  | 
 | ||||||
|  |     $value = []; | ||||||
|  |     $result = $schema->getWrapper($value, null, ["throw" => false])->getResult(null); | ||||||
|  |     $expectedMessage = <<<EOT | ||||||
|  | rs: vous devez spécifier cette valeur | ||||||
|  | EOT; | ||||||
|  |     self::assertSame($expectedMessage, $result->message); | ||||||
|  | 
 | ||||||
|  |     $value = [ | ||||||
|  |       "rs" => null, | ||||||
|  |       "i" => "abc", | ||||||
|  |     ]; | ||||||
|  |     $result = $schema->getWrapper($value, null, ["throw" => false])->getResult(null); | ||||||
|  |     $expectedMessage = <<<EOT | ||||||
|  | rs: cette valeur ne doit pas être nulle | ||||||
|  | i: une valeur numérique entière est attendue | ||||||
|  | EOT; | ||||||
|  |     self::assertSame($expectedMessage, $result->message); | ||||||
|  |   } | ||||||
| } | } | ||||||
|  | |||||||
| @ -19,6 +19,8 @@ class ScalarSchemaTest extends TestCase { | |||||||
|     "messages" => null, |     "messages" => null, | ||||||
|     "formatter_func" => null, |     "formatter_func" => null, | ||||||
|     "format" => null, |     "format" => null, | ||||||
|  |     "size" => null, | ||||||
|  |     "precision" => null, | ||||||
|     "" => [ |     "" => [ | ||||||
|       "scalar", |       "scalar", | ||||||
|       "compute_func" => null, |       "compute_func" => null, | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user