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

columnas_attr

La función columnas_attr 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_attr(array $columna, array $columnas_completas, array $columnas_parseadas): array|stdClass

Parámetros

  • $columna (array): Un array que contiene la información de la columna.
  • $columnas_completas (array): Un array que se va a completar con la información validada de las columnas.
  • $columnas_parseadas (array): Un array que se va a completar con la información parseada de las columnas.

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

  • Iteración Sobre las Columnas
    • La función itera sobre cada clave-valor en el array $columna.
    • Para cada par clave-valor, llama a la función columnas_field para asignar y validar los atributos de la columna.
  • Asignación y Validación de Columnas
    • Se llama a la función columnas_field con los parámetros atributo, campo, 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_field.
  • 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
$columna = array(
    'Field' => 'nombre',
    'Type' => 'VARCHAR(255)',
    'Null' => 'NO',
    'Key' => 'PRI'
);
$columnas_completas = array();
$columnas_parseadas = array();

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

Código de la Función

private function columnas_attr(array $columna, array $columnas_completas, array $columnas_parseadas): array|stdClass
    {
        foreach($columna as $campo=>$atributo){
            $columnas_field = $this->columnas_field(atributo: $atributo, campo: $campo, 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;
    }