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

La classe StringTool est un composant de validation et de manipulation de texte "Multibyte Aware". Elle permet de s'assurer que les chaînes de caractères respectent des contraintes strictes (longueur, type de caractères, format email/URL) tout en supportant nativement les caractères accentués (UTF-8).

Namespace : Magepattern\Component\Tool\StringTool

Liste des méthodes

Méthode Paramètres Retour Description
str_search() string $hay, array $need, bool $c bool Recherche une ou plusieurs aiguilles dans une chaîne.
isURL() string $url bool Valide une URL via filter_var.
isMail() string $mail bool Valide une adresse email.
isAlpha() string $str bool Vérifie si la chaîne contient uniquement des lettres (UTF-8).
isAlphaNumeric() string $str bool Vérifie si la chaîne contient lettres et chiffres.
isMinString() string $str, int $size bool Vérifie si la chaîne est inférieure à la taille donnée.
isMaxString() string $str, int $size bool Vérifie si la chaîne est supérieure à la taille donnée.
isAlphaMax() string $str, int $lg bool Combine isAlpha et !isMaxString.
isAlphaNumericMax() string $str, int $lg bool Combine isAlphaNumeric et !isMaxString.
isNumericClean() string $str, int $lg bool Vérifie si numérique + longueur max.
strtoupper() string $str string Version mb_ de strtoupper (UTF-8).
strtolower() string $str string Version mb_ de strtolower (UTF-8).
ucFirst() string $str string Première lettre en majuscule (UTF-8 safe).
truncate() string $str, int $lg, string $del string Coupe une chaîne sans briser les mots.

Usage de base

  1. Recherche multiple dans une chaîne La méthode str_search permet de détecter très rapidement si l'un des mots d'une liste est présent (ou absent).
use Magepattern\Component\Tool\StringTool;

$comment = "Ceci est un message contenant un mot banni.";
$bannedWords = ['banni', 'interdit', 'spam'];

if (StringTool::str_search($comment, $bannedWords)) {
    die("Votre message contient des mots non autorisés.");
}
  1. Validation de formulaire (Nom d'utilisateur) Pour un champ "Prénom", isAlpha est préférable à ctype_alpha car il accepte les accents (ex: "Hélène").
$firstname = "Hélène";
if (StringTool::isAlphaMax($firstname, 50)) {
    // Le prénom est valide et ne dépasse pas 50 caractères
}

Sécurité & Précision

Support Multibyte : Toutes les méthodes de calcul de longueur (isMinString, isMaxString) et de transformation (ucFirst, strtoupper) utilisent l'extension mbstring. Cela évite de compter un caractère accentué comme deux octets.

Validation de type : L'utilisation des propriétés Unicode \p{L} (lettres) et \p{N} (nombres) dans les Regex garantit que la validation est internationale et ne se limite pas aux caractères anglo-saxons.

$content = "Magepattern est un framework PHP moderne et léger conçu pour la performance.";
echo StringTool::truncate($content, 25); 
// Résultat : "Magepattern est un..." (ne coupe pas "framework" en deux)

Clone this wiki locally