administrador.base.orm.filtros.init_complemento - gamboamartin/administrador GitHub Wiki

init_complemento

La función init_complemento inicializa los campos de un objeto stdClass llamado $complemento basándose en un conjunto de claves proporcionadas en el array $keys. Si alguna clave no está presente en el objeto, se inicializa con una cadena vacía. La función también realiza validaciones para asegurarse de que el array de claves no esté vacío y que las claves no contengan cadenas vacías o espacios en blanco. Si ocurre algún error durante el proceso, devuelve un array con los detalles del error.

Signatura

private function init_complemento(stdClass $complemento, array $keys): stdClass|array

Parámetros

stdClass $complemento

  • Tipo: stdClass
  • Descripción: Un objeto que contendrá las claves proporcionadas en $keys. Si alguna clave no está presente en el objeto, será inicializada como una cadena vacía.

array $keys

  • Tipo: array
  • Descripción: Un array de claves que representan los campos que deben estar presentes en el objeto $complemento. Si alguna clave no está definida, la función la inicializa con una cadena vacía.

Retorno

stdClass|array

  • Tipo: stdClass o array
  • Descripción:
    • Si la operación es exitosa, devuelve el objeto $complemento con todas las claves inicializadas.
    • Si ocurre un error, devuelve un array con un mensaje de error y los detalles del problema.

Explicación Detallada

  1. Validación del array $keys:

    • La función comienza verificando que el array $keys no esté vacío. Si está vacío, se devuelve un error.
    if (count($keys) === 0) {
        return $this->error->error(mensaje: 'Error los keys de un complemento esta vacio', data: $keys, es_final: true);
    }
    
  2. Validación de las claves dentro de $keys:

    • La función recorre cada clave en el array $keys. Si alguna clave está vacía (es decir, una cadena vacía o solo espacios en blanco), se devuelve un error.
    • Si la clave no está presente en el objeto $complemento, se inicializa con una cadena vacía.
    foreach ($keys as $key) {
        $key = trim($key);
        if ($key === '') {
            return $this->error->error(mensaje: 'Error el key esta vacio', data: $key, es_final: true);
        }
        if (!isset($complemento->$key)) {
            $complemento->$key = '';
        }
    }
    
  3. Retorno del objeto $complemento:

    • Si todas las claves están validadas e inicializadas correctamente, la función devuelve el objeto $complemento.
    return $complemento;
    

Ejemplo de uso

$complemento = new stdClass();
$keys = ['nombre', 'edad', 'direccion'];

$resultado = $this->init_complemento($complemento, $keys);

// Resultado esperado:
// $complemento->nombre = '';
// $complemento->edad = '';
// $complemento->direccion = '';

Código de la Función

private function init_complemento(stdClass $complemento, array $keys): stdClass|array
    {
        if(count($keys) === 0){
            return $this->error->error(mensaje:'Error los keys de un complemento esta vacio',data:$keys,
                es_final: true);
        }
        foreach ($keys as $key){
            $key = trim($key);
            if($key === ''){
                return $this->error->error(mensaje:'Error el key esta vacio',data:$key, es_final: true);
            }
            if(!isset($complemento->$key)){
                $complemento->$key = '';
            }
        }
        return $complemento;
    }