administrador.base.orm.modelo.get_codigo_aleatorio - gamboamartin/administrador GitHub Wiki
get_codigo_aleatorio
La función get_codigo_aleatorio
genera un código aleatorio de una longitud especificada. El código generado puede contener dígitos (0-9
), letras minúsculas (a-z
) y letras mayúsculas (A-Z
).
Signatura
final public function get_codigo_aleatorio(int $longitud = 6): string|array
Parámetros
$longitud (int): Longitud del código aleatorio a generar. El valor predeterminado es 6.
-
- Requisitos: Debe ser un entero mayor a 0.
-
- Comportamiento: Si el valor es menor o igual a 0, la función retornará un error a través del método $this->error->error.
Retorna
-
string: Una cadena aleatoria de longitud longitud compuesta por caracteres alfanuméricos (dígitos y letras en mayúsculas y minúsculas).
-
array: Si la longitud es menor o igual a 0, se devuelve un arreglo con un mensaje de error y los datos de la longitud.
Explicación Detallada
-
Validación de Longitud:
-
- La función primero verifica si la longitud proporcionada es mayor que 0. Si no lo es, se retorna un error usando $this->error->error con un mensaje adecuado y los datos de la longitud.
-
Generación del Código:
-
- La función define un conjunto de caracteres ($chars) que incluye dígitos, letras minúsculas y mayúsculas.
-
- Luego, en un bucle que corre tantas veces como la longitud especificada, selecciona un carácter aleatorio de $chars y lo agrega a la cadena $random_string.
-
Retorno
-
- Finalmente, la función devuelve la cadena aleatoria generada.
-
Posibles Errores
-
- Error de longitud inválida: Si se pasa un valor de longitud menor o igual a 0, la función no intentará generar un código y, en su lugar, llamará al método de error correspondiente.
Ejemplos
// Ejemplo 1: Generar un código aleatorio de la longitud predeterminada (6 caracteres)
$codigo1 = $this->get_codigo_aleatorio();
echo $codigo1; // Ejemplo de salida: "a1B2c3"
// Ejemplo 2: Generar un código aleatorio de 10 caracteres
$codigo2 = $this->get_codigo_aleatorio(10);
echo $codigo2; // Ejemplo de salida: "A1b2C3d4E5"
// Ejemplo 3: Generar un código aleatorio de 1 carácter
$codigo3 = $this->get_codigo_aleatorio(1);
echo $codigo3; // Ejemplo de salida: "Z"
// Ejemplo 4: Manejo de error al pasar una longitud inválida (0 o menor)
$codigo4 = $this->get_codigo_aleatorio(0);
// Manejo del error devuelto por la función
if (is_array($codigo4)) {
echo "Error: " . $codigo4['mensaje']; // Ejemplo de salida: "Error: Error longitud debe ser mayor a 0"
}
// Ejemplo 5: Generar un código aleatorio con una longitud grande, por ejemplo, 20 caracteres
$codigo5 = $this->get_codigo_aleatorio(20);
echo $codigo5; // Ejemplo de salida: "a1B2c3D4e5F6g7H8i9J0"
Código de la Función
final public function get_codigo_aleatorio(int $longitud = 6): string|array
{
if($longitud<=0){
return $this->error->error(mensaje: 'Error longitud debe ser mayor a 0', data: $longitud);
}
$chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$random_string = '';
for($i = 0; $i < $longitud; $i++) {
$random_character = $chars[mt_rand(0, strlen($chars) - 1)];
$random_string .= $random_character;
}
return $random_string;
}