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