27 lines
761 B
PHP
27 lines
761 B
PHP
|
|
<?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;
|
||
|
|
}
|
||
|
|
}
|