Générer une chaîne de caractères aléatoire avec le composant Symfony string

Publié le 21/11/2021 • Mis à jour le 21/11/2021


English language detected! 🇬🇧

  We noticed that your browser is using English. Do you want to read this post in this language?

Read the english version 🇬🇧 Close

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);

// src/Controller/Snippet/Snippet175Trait.php

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