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();
|
|
}
|