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
oarray
- 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.
- Si la operación es exitosa, devuelve el objeto
Explicación Detallada
-
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); }
- La función comienza verificando que el array
-
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 = ''; } }
- La función recorre cada clave en el array
-
Retorno del objeto
$complemento
:- Si todas las claves están validadas e inicializadas correctamente, la función devuelve el objeto
$complemento
.
return $complemento;
- Si todas las claves están validadas e inicializadas correctamente, la función devuelve el objeto
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;
}