Validation des champs
Rendre un champ obligatoire et vérifier sa forme - toutes deux appliquées côté client pour une expérience fluide, et côté serveur parce que le client ne peut jamais être digne de confiance.
Champs obligatoires
->validation_required($field, $minLength = null) interdit d'enregistrer le formulaire si le champ est laissé vide, en exigeant éventuellement aussi une longueur minimale. Les deux vérifications s'exécutent côté client (retour instantané) ET côté serveur (l'application réelle).
$xcrud->validation_required('lastName');
$xcrud->validation_required('password', 8);
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
$field | string | - | Champ qui doit être non vide pour enregistrer |
$minLength | ?int | null | Si défini, la valeur doit également compter au moins ce nombre de caractères |
Validation par motif
->validation_pattern($field, $pattern) exige que la valeur d'un champ (lorsqu'elle est non vide) corresponde à une expression régulière. Un champ vide passe seul la vérification du motif - associez-le à ->validation_required() pour aussi interdire de le laisser vide.
$xcrud->validation_pattern('email', 'email');
$xcrud->validation_pattern('sku', '^[A-Z]{2}-\d{4}$');
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
$field | string | - | Champ à valider |
$pattern | string | - | Un raccourci nommé, ou un corps d'expression régulière littéral sans délimiteurs |
| Raccourci nommé | Correspond à |
|---|---|
email | Une forme simple utilisateur@hôte |
alpha | Lettres uniquement |
alpha_numeric | Lettres et chiffres |
alpha_dash | Lettres, chiffres, tiret bas, trait d'union |
numeric | Un nombre entier ou décimal, éventuellement négatif |
natural | Chiffres uniquement (un entier non négatif) |
url | Une URL http:// ou https:// |
Pourquoi l'application côté serveur compte
La validation côté client est une commodité - elle donne au visiteur un retour instantané sans aller-retour serveur. Ce n'est pas une barrière de sécurité : un client peut contourner chaque vérification côté client simplement en appelant l'API REST directement (par exemple avec curl ou fetch()), en court-circuitant entièrement le formulaire et son JavaScript. C'est pourquoi ->validation_required() et ->validation_pattern() réexécutent tous deux exactement les mêmes vérifications sur le serveur avant qu'une ligne ne soit jamais écrite. Voir la Référence de l'API REST pour le endpoint brut que ces vérifications protègent.
En pratique
$xcrud = Xcrud::get_instance();
$xcrud->table('employees');
$xcrud->route('employees');
$xcrud->validation_required('lastName');
$xcrud->validation_required('firstName');
$xcrud->validation_pattern('email', 'email');
$xcrud->validation_pattern('extension', 'alpha_numeric');
$xcrud->render();