64 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| namespace nur\b\values;
 | |
| 
 | |
| use Throwable;
 | |
| 
 | |
| /**
 | |
|  * Interface IValue: wrapper vers une valeur avec éventuellement l'une de
 | |
|  * propriétés suivante:
 | |
|  * - indéfinie
 | |
|  * - indisponible (en erreur)
 | |
|  * - définie mais nulle
 | |
|  * - définie non nulle
 | |
|  * Une valeur peut être mutable ou non.
 | |
|  */
 | |
| interface IProxyValue extends IValueState {
 | |
|   /** tester si is_undef() peut retourner true */
 | |
|   function allowUndef(): bool;
 | |
|   /** tester si is_null() peut retourner true */
 | |
|   function allowNull(): bool;
 | |
|   /** tester si is_error() peut retourner true */
 | |
|   function allowError(): bool;
 | |
| 
 | |
|   /** tester si la valeur est indéfinie */
 | |
|   function isUndef(): bool;
 | |
|   /** tester si la valeur est définie et nulle */
 | |
|   function isNull(): bool;
 | |
|   /** tester si la valeur n'est pas disponible à cause d'une erreur */
 | |
|   function isError(): bool;
 | |
|   /** tester si la valeur est définie et non nulle */
 | |
|   function isValue(): bool;
 | |
|   /** tester si la valeur est modifiable */
 | |
|   function isMutable(): bool;
 | |
| 
 | |
|   /**
 | |
|    * En fonction de l'état actuel:
 | |
|    * - retourner la valeur si elle est définie
 | |
|    * - retourner $default si la valeur est indéfinie
 | |
|    * - lancer l'exception si is_error() est vrai
 | |
|    */
 | |
|   function get($default=null);
 | |
| 
 | |
|   /**
 | |
|    * obtenir l'exception si is_error() est vrai
 | |
|    *
 | |
|    * @throw ProxyValueException si ce n'est pas une erreur
 | |
|    */
 | |
|   function getError(): Throwable;
 | |
| 
 | |
|   /**
 | |
|    * modifier la valeur. retourner la valeur précédente
 | |
|    *
 | |
|    * @throws ProxyValueException si cet objet n'est pas modifiable
 | |
|    */
 | |
|   function set($value);
 | |
| 
 | |
|   /**
 | |
|    * rétablir cet objet à l'état indéfini
 | |
|    *
 | |
|    * @throws ProxyValueException si cet objet n'est pas modifiable ou ne
 | |
|    * supporte pas l'état "indéfini"
 | |
|    */
 | |
|   function reset();
 | |
| }
 |