Générer une chaîne de caractères aléatoire avec le composant Symfony string
Publié le 21/11/2021 • Actualisé le 21/11/2021
Dans ce bout de code, nous voyons comment générer une chaîne de caractères aléatoire avec le composant Symfony string. Il y a cette fonction statique fromRandom
dans la classe ByteString
. Le premier argument représente la longueur de la chaîne à générer et le deuxième permet de restreindre les caractères utilisés en spécifiant un alphabet. Veuillez noter que l'on peut utiliser la fonction PHP range()
pour récupérer toutes les lettres de a à z dans avoir à tout taper. Veuillez aussi noter que l'alphabet par défaut exclue les zéros (0) pour éviter les confusions avec la lettre O.
<?php
declare(strict_types=1);
namespace App\Controller\Snippet;
use Symfony\Component\String\ByteString;
/**
* J'utilise un trait PHP afin d'isoler chaque snippet dans un fichier.
* Ce code doit être apellé d'un contrôleur Symfony étendant AbstractController (depuis Symfony 4.2)
* ou Symfony\Bundle\FrameworkBundle\Controller\Controller (Symfony <= 4.1).
* Les services sont injectés dans le constructeur du contrôleur principal.
*/
trait Snippet175Trait
{
public function snippet175(): void
{
echo ByteString::fromRandom(32)->toString(); // default alphabet is [1-9][A-Z][a-z] (e.g: new random password)
echo "\n";
echo ByteString::fromRandom(8, implode('', range('A', 'Z')))->toString(); // uppercase letters only (e.g: sponsor code)
echo "\n";
echo ByteString::fromRandom(4, '0123456789')->toString(); // numbers only (e.g: pin code)
// That's it! 😁
}
}
Exécuter le snippet Plus sur Stackoverflow Lire la doc Plus sur le web Snippet aléatoire