Les règles de validation syntaxiques (LSformRule)
Les LSformRules sont les règles syntaxiques applicables aux champs des formulaires.
Ces règles serviront à s'assurer que les valeurs des champs récupérées des formulaires sont
syntaxiquement correctes. Elles seront configurables via le paramètre check_data
des attributs des
LSobjects.
Pour chaque type implémenté, on trouvera une classe PHP dérivée de la classe LSformRule
et devant
s'appeler LSattr_rule_[nom du type]
. Dans celle-ci, il devra être défini la méthode statique
validate()
qui implémentera le contrôle syntaxique. Cette méthode prendra en paramètres :
-
$value
La valeur à tester.
-
$options
Un tableau des options définies dans la configuration pour ce contrôle syntaxique.
-
$formElement
Une référence au champ du formulaire (objet LSformElement).
Cette méthode devra retourner True
ou False
si la valeur testée est respectivement valide ou
invalide. Elle pourra également déclencher une exception LSformRuleException
qui lui permettra de
donner des messages d'erreurs elle-même sur le(s) problème(s) detecté(s) durant l'analyse de la
valeur passée. Le constructeur de ce type d'exception prend en tant que premier paramètre un tableau
de messages d'erreurs (ou un simple message d'erreur) qui seront retournés à l'utilisateur.
Note
Par défaut, les valeurs de l'attribut sont testées une à une via la méthode validate()
.
Cependant, il est possible d'implémenter une méthode de validation pour toutes les valeurs de
l'attribut en une seule fois en affectant la valeur false
à la constante de classe
validate_one_by_one
. Dans ce cas, l'ensemble des valeurs de l'attribut seront passées via le
paramètre $value
à la méthode validate()
(sous la forme d'un tableau). Cela pourra par
exemple être utile pour implémenter une validation de la cohérence des valeurs les unes vis à
vis des autres (unicité, nombre maximum de valeurs, …).