Paillasse/portail/app/Support/CodeLisible.php

27 lines
761 B
PHP
Raw Normal View History

<?php
namespace App\Support;
/**
* Codes courts qu'un élève doit pouvoir lire et retaper sans erreur :
* sans 0/O ni 1/I/L, qui se confondent facilement à l'écran comme à voix
* haute. Utilisé pour le code secret de l'élève (GenerateurCompteEleve) et,
* depuis le 2026-10-12, pour le code de classe (Classe) — qui utilisait
* jusque-là un alphabet différent et ambigu (dette notée le 2026-10-09).
*/
final class CodeLisible
{
public const ALPHABET = 'ABCDEFGHJKMNPQRSTUVWXYZ23456789';
public static function genere(int $longueur): string
{
$code = '';
for ($i = 0; $i < $longueur; $i++) {
$code .= self::ALPHABET[random_int(0, strlen(self::ALPHABET) - 1)];
}
return $code;
}
}