Evolution #2273
ferméGestion des codes erreurs
100%
Les codes erreurs sont à appliquer dans un premiers à toutes les erreurs d'importation.
Reprendre les codes erreurs des importation de familles.
TAUFU: reprendre les tests d'importation de famille
à compléter si nécessaire
Description
Le principe est de répertorier les erreurs suivant des catégories. Exemple les erreurs de workflow, les erreurs de structure de famille, les erreurs d'envoi de mail, ...
à chaque catégorie d'erreur, une classe PHP est associé avec un code spécifique (3 - 4 lettres)
class ErrorCodeWFL : workflow
class ErrorCodeFST : structure de famille
class ErrorCodeMAIL ; courriels
Chaque classe comporte uniquement des constantes :
exemple :
class ErrorCodeWFL
{
/**
* ask transition parameter must be an array of workflow parameters
* @code
public $transitions=array(self::T1, array("ask"=>array("THE_FIRSTPARAM")));
* @endcode
/
const WFL007 = 'workflow transition ask is not an array for transition model %s in class %s'; // James Bond Error
/*
* m1 transition parameter must reference method of workflow class
*/
const WFL008 = 'workflow unknow m1 method %s for transition model %s in class %s';
}
Une méthode globale (statique pour les puristes :-;) permet de de retourner une erreur à partir de son code : ErrorCode::getError($code, ...)
Exemple :
$errorMsg= ErrorCode::getError("WFL008",$transition["m1"], $tkey, $this->className);
Ce qui produit le message : "{WFL008} workflow unknow m1 method A2 for transition model T3 in class WTestImp4"
Ces messages ne sont pas traduits. Ils ne sont pas à utiliser pour des avertissements fonctionnels d'une application. Il sont à utiliser pour les cas d'erreur : retour d'exception, action::exitError(), ...
La documentation de l'api (généré par doxygen) servira aussi de référence pour les codes erreurs. Cela peut aussi être complété par une section dédiée sur le manuel de réference.
Mis à jour par Marc Claverie il y a plus de 14 ans
- Tracker changé de Amélioration à Evolution
Mis à jour par Éric Brison il y a environ 14 ans
- Statut changé de Nouveau à Intégré
Appliqué par commit commit:fa336bc72771c46351260ce6d8617d17122731a4.