32 lines
880 B
PHP
32 lines
880 B
PHP
|
<?php
|
||
|
namespace nur\sery\schema\values;
|
||
|
|
||
|
/**
|
||
|
* Class Result: résultat de l'analyse ou de la normalisation d'une valeur
|
||
|
*
|
||
|
* @property-read bool $valid
|
||
|
* @property-read string|int|null $key si la valeur est dans un tableau, clé de
|
||
|
* la valeur dans le tableau
|
||
|
* @property-read string|null $orig valeur originale avant analyse
|
||
|
* @property-read string|null $message message d'erreur si la valeur n'est pas
|
||
|
* valide
|
||
|
*/
|
||
|
class Result {
|
||
|
const KEYS = ["valid", "key", "orig", "message"];
|
||
|
|
||
|
function __construct(?array $result=null) {
|
||
|
if ($result === null) $result = ["valid" => false];
|
||
|
foreach (static::KEYS as $key) {
|
||
|
if (!array_key_exists($key, $result)) $result[$key] = null;
|
||
|
}
|
||
|
#XXX interpoler [message] avec les clés de $result
|
||
|
$this->result = $result;
|
||
|
}
|
||
|
|
||
|
protected $result;
|
||
|
|
||
|
function __get($name) {
|
||
|
return $this->result[$name];
|
||
|
}
|
||
|
}
|