Helper DataFilter
1Présentation
Helper servant à valider des données, pour vérifier qu'elle respectent un contrat. Cela peut-être utile pour vérifier que les données en entrée d'une API sont conformes à ce qui est attendu.
2Exemples de contrats
2.1Validation automatique (pass-through)
2.2Types
Types scalaires :
Tous les types sont nullables en préfixant un point d'interrogation :
Il est possible d'utiliser des types multiples. Par exemple :
2.3Paramètres
En plus de la définition de type, les contrats peuvent prendre des paramètres.
Les paramètres peuvent s'écrire de deux manières différentes :
- Ils peuvent être ajouté à la chaîne de configuration du contrat, à la suite de la définition de type. Les paramètres sont alors séparés par des caractères point-virgule (;), et le nom du paramètre est séparé de sa valeur par un caractère deux-points (:).
- Il est aussi possible d'écrire les contrats sous forme de tableau associatif. Le type et les paramètres sont autant de couples clé/valeur dans le tableau. Cette écriture est obligatoire lorsqu'il faut définir des sous-contrats.
Types scalaires avec une valeur par défaut :
Nombre (entier ou flottant) avec une valeur minimale et/ou maximale :
Chaîne de caractère avec une longueur minimale et/ou maximale, ou devant valider une expression régulière :
Adresse mail, éventuellement avec une expression régulière :
URL, éventuellement avec une taille minimale, une taille maximale et/ou une expression régulière :
Énumération, avec ou sans valeur par défaut :
Liste, avec un contrat servant à valider que tous ses éléments sont des nombres entiers :
Tableau associatif, avec la définition de ses clés :
Tableau associatif, avec la définition de ses clés, certaines ayant un type associé :
Liste avec un contrat qui définit que ses valeurs doivent être des tableaux associatifs dont les clés sont définies :
Tableau associatif dont les clés sont définies. Les clés sont typées, et l'une d'elles est optionnelle :
Exemple complexe :
3Utilisation
L'objet \Temma\Utils\DataFilter offre une méthode statique process(). Cette méthode prend en paramètre la donnée à filtrer et le contrat à utiliser, et elle retourne la donnée filtrée. Si la syntaxe du contrat est incorrecte, la méthode lève une exception \Temma\Exceptions\IO. Si la donnée ne respecte pas le contrat, la méthode lève une exception \Temma\Exceptions\Application.
Exemple d'utilisation :