Skip to content
Gérits Aurélien edited this page Feb 13, 2026 · 1 revision

Le composant FormTool centralise les opérations de nettoyage (sanitization) et de filtrage. Il permet de traiter aussi bien des variables isolées que des tableaux de données complets (issus de $_POST ou $_GET) de manière récursive.

Namespace : Magepattern\Component\Tool\FormTool

simpleClean() string $str string Trim + Échappement HTML basique.
extremeClean() string $str string Nettoyage agressif pour affichage sécurisé.
arrayClean() array $data, $keys array Nettoie un tableau de manière récursive.
sanitize() $str, $type, $flag string Filtre spécifique (email, url, float, etc.).
rewriteUrl() string $str string Transforme une saisie en slug URL propre.
alphaNumeric() string $str string Supprime tout ce qui n'est pas lettre ou chiffre.

Usage : Traitement de formulaires

  1. Nettoyage global de $_POST C'est l'usage le plus courant. Au lieu de nettoyer chaque champ manuellement, on traite l'ensemble du tableau. La méthode arrayClean permet de spécifier quels champs (comme les zones de texte riche) doivent conserver leurs apostrophes via cleanQuote.
use Magepattern\Component\Tool\FormTool;

// On nettoie tout le POST, mais on autorise les quotes pour 'message' et 'bio'
$formData = FormTool::arrayClean($_POST, 'message,bio');

// Les données sont maintenant prêtes pour la base de données
$title = $formData['title'];
  1. Validation et Sanitization spécifique Utilisez sanitize() pour forcer un format spécifique sans lever d'erreur, en extrayant uniquement les caractères valides.
$email = "  aurelien@EXEMPLE.com  ";
$cleanEmail = FormTool::sanitize($email, 'mail'); // aurelien@exemple.com

$price = "1.250,50 €";
$cleanPrice = FormTool::sanitize($price, 'float', 'thousand'); // 1250.50
  1. Génération de Slugs Pratique pour générer un alias d'URL à partir d'un titre saisi par l'utilisateur.
$title = "Mon Super Article !";
$url = FormTool::rewriteUrl($title); // mon-super-article

Stratégies de Nettoyage

  • Simple vs Extreme : simpleClean est idéal pour les entrées standards. extremeClean est recommandé pour les données sensibles qui seront réaffichées directement dans le DOM sans autre traitement.

  • Récursivité : arrayClean et arrayExtremeClean parcourent les tableaux multi-dimensionnels sans limite de profondeur, ce qui est parfait pour les formulaires complexes avec des groupes de champs imbriqués.

  • Sécurité par défaut : En cas d'erreur de filtre dans sanitize(), la méthode retourne une chaîne vide plutôt que la donnée brute, empêchant ainsi l'injection de données malformées.

Clone this wiki locally