modifs.mineures sans commentaires

This commit is contained in:
Jephté Clain 2025-10-08 09:06:05 +04:00
parent c116bd31a1
commit 50963885f0

View File

@ -1,105 +0,0 @@
<?php
namespace nulib;
use nulib\text\Word;
/**
* Class exceptions: répertoire d'exceptions normalisées
*/
class exceptions {
const WORD = "la valeur#s";
protected static Word $word;
protected static function word(): Word {
return self::$word ??= new Word(static::WORD);
}
/**
* indiquer qu'une valeur est invalide pour une raison générique
*/
static function invalid_value($value, ?string $reason=null): UserException {
$msg = var_export($value, true);
$msg .= self::word()->_ce();
$msg .= " est invalide";
if ($reason) $msg .= ": $reason";
return new UserException($msg);
}
/**
* spécialisation de {@link self::invalid_value()} qui permet d'indiquer les
* types attendus
*/
static function invalid_type($value, $expectedTypes=null): UserException {
$pronom = self::word()->pronom();
$expectedTypes = cl::withn($expectedTypes);
if (!$expectedTypes) {
$reason = null;
} elseif (count($expectedTypes) == 1) {
$reason = "$pronom doit être du type suivant: ";
} else {
$reason = "$pronom doit être d'un des types suivants: ";
}
$reason .= implode(", ", $expectedTypes);
return self::invalid_value($value, $reason);
}
static function invalid_format($value, $expectedFormats=null): UserException {
$pronom = self::word()->pronom();
$expectedFormats = cl::withn($expectedFormats);
if (!$expectedFormats) {
$reason = null;
} elseif (count($expectedFormats) == 1) {
$reason = "$pronom doit être au format suivant: ";
} else {
$reason = "$pronom doit être dans l'un des formats suivants: ";
}
$reason .= implode(", ", $expectedFormats);
return self::invalid_value($value, $reason);
}
static function out_of_range($value, ?int $min=null, ?int $max=null): UserException {
$pronom = self::word()->pronom();
if ($min !== null && $max !== null) {
$reason = "$pronom doit être compris entre $min et $max";
} else if ($min !== null) {
$reason = "$pronom doit être supérieur à $min";
} elseif ($max !== null) {
$reason = "$pronom doit être inférieur à $max";
} else {
$reason = null;
}
return self::invalid_value($value, $reason);
}
static function null_value(?string $reason=null): UserException {
$msg = self::word()->_ce();
$msg .= " ne doit pas être nulle";
if ($reason) $msg .= ": $reason";
return new UserException($msg);
}
/**
* indiquer qu'une valeur est manquante
*/
static function missing_value(?int $amout=null, ?string $reason=null): UserException {
$msg = "il manque ";
if ($amout !== null) {
$msg .= self::word()->q($amout);
} else {
$msg .= self::word()->_le();
}
if ($reason) $msg .= ": $reason";
return new UserException($msg);
}
/**
* indiquer qu'une valeur est en trop
*/
static function unexpected_value(?string $reason=null): UserException {
$msg = "il y a trop ";
$msg .= self::word()->_de(2);
if ($reason) $msg .= ": $reason";
return new UserException($msg);
}
}