-
Notifications
You must be signed in to change notification settings - Fork 0
StringTool
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
| 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
- 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.");
}- 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
}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)