administrador.base.orm.columnas.columnas_sql_array - gamboamartin/administrador GitHub Wiki

columnas_sql_array

La función columnas_sql_array es una función privada que itera sobre un array de columnas, asigna y valida sus atributos, completando arrays con la información de las columnas proporcionada. A continuación, se detalla su funcionamiento y componentes.

Signatura

private function columnas_sql_array(array $columnas): array|stdClass

Parámetros

  • $columnas (array): Un array de arrays, donde cada sub-array contiene la información de una columna.

Retorna

  • Tipo: array|stdClass
  • Descripción: Retorna un objeto stdClass con dos propiedades:
    • $columnas_parseadas: El array $columnas_parseadas con la información parseada de las columnas.
    • $columnas_completas: El array $columnas_completas con la información completa de las columnas.

Explicación Detallada

  • Inicialización de Arrays
    • Se inicializan dos arrays vacíos: $columnas_parseadas y $columnas_completas.
  • Iteración Sobre las Columnas
    • La función itera sobre cada elemento en el array $columnas.
    • Para cada elemento, se verifica si es un array. Si no lo es, se retorna un error indicando que $columna debe ser un array.
  • Asignación y Validación de Columnas
    • Se llama a la función columnas_attr con los parámetros columna, columnas_completas y columnas_parseadas.
    • Si hay un error en la asignación (errores::$error), se retorna un error con un mensaje indicando el fallo al obtener las columnas.
    • Se actualizan los arrays $columnas_parseadas y $columnas_completas con los valores retornados por columnas_attr.
  • Retorno de la Información
    • Se crea un objeto stdClass y se asignan las propiedades columnas_parseadas y columnas_completas.
    • Se retorna el objeto con la información asignada.

Ejemplos

//Ejemplo 1: Asignación Correcta

$columnas = array(
    array(
        'Field' => 'nombre',
        'Type' => 'VARCHAR(255)',
        'Null' => 'NO',
        'Key' => 'PRI'
    ),
    array(
        'Field' => 'edad',
        'Type' => 'INT',
        'Null' => 'YES',
        'Key' => ''
    )
);

// Instancia de la clase que contiene la función columnas_sql_array
$mi_clase = new MiClase();

Código de la Función

private function columnas_sql_array(array $columnas): array|stdClass
    {
        $columnas_parseadas = array();
        $columnas_completas = array();
        foreach($columnas as $columna ){
            if(!is_array($columna)){
                return $this->error->error(mensaje: 'Error $columna debe ser un array', data: $columnas,
                    es_final: true);
            }
            $columnas_field = $this->columnas_attr(columna: $columna, columnas_completas:  $columnas_completas,
                columnas_parseadas:  $columnas_parseadas);
            if(errores::$error){
                return $this->error->error(mensaje: 'Error al obtener columnas', data: $columnas_field);
            }
            $columnas_parseadas = $columnas_field->columnas_parseadas;
            $columnas_completas = $columnas_field->columnas_completas;
        }

        $data = new stdClass();
        $data->columnas_parseadas = $columnas_parseadas;
        $data->columnas_completas = $columnas_completas;
        return $data;
    }