administrador.base.orm.where.where_mayus - gamboamartin/administrador GitHub Wiki
where_mayus
La función where_mayus se encarga de validar y modificar el valor de la propiedad where dentro de un objeto stdClass llamado $complemento. Se asegura de que la cláusula where esté en mayúsculas y correctamente formada. Si la validación falla, devuelve un array con un mensaje de error.
Signatura
private function where_mayus(stdClass $complemento): array|stdClass
Parámetros
stdClass $complemento
- Tipo:
stdClass - Descripción: Un objeto que debe contener la propiedad
where. Si la propiedad no está definida, la función la crea con un valor vacío. La función verifica y transforma este valor según las reglas definidas.
Retorna
array|stdClass
- Tipo:
arrayostdClass - Descripción:
- Si la validación es exitosa, la función devuelve el objeto
$complementomodificado, con la propiedadwhereen mayúsculas si es necesario. - Si hay algún error, como que el
whereno esté correctamente formado o tenga un valor inválido, devuelve un array de error con detalles del problema.
- Si la validación es exitosa, la función devuelve el objeto
Explicación Detallada
-
Verificación de la propiedad
where:- Si el objeto
$complementono tiene definida la propiedadwhere, se inicializa con una cadena vacía ('').
- Si el objeto
-
Limpieza de espacios en blanco:
- Se eliminan los espacios en blanco al principio y al final de la propiedad
whereusandotrim().
- Se eliminan los espacios en blanco al principio y al final de la propiedad
-
Conversión a mayúsculas:
- Si la cláusula
whereno está vacía después de la limpieza, se convierte a mayúsculas usandostrtoupper().
- Si la cláusula
-
Validación de la cláusula
where:- Si la cláusula
whereno está vacía y no es exactamente igual a'WHERE', se devuelve un array de error indicando que la cláusulawhereestá mal aplicada.
- Si la cláusula
-
Retorno del objeto
complemento:- Si todas las validaciones son exitosas, el objeto
$complementose devuelve con las modificaciones realizadas (si aplica).
- Si todas las validaciones son exitosas, el objeto
Ejemplos
$complemento = new stdClass();
$complemento->where = " where id = 1";
$resultado = $this->where_mayus($complemento);
// Resultado esperado:
// $complemento->where = "WHERE ID = 1";
Código de la Función
private function where_mayus(stdClass $complemento): array|stdClass
{
if(!isset($complemento->where)){
$complemento->where = '';
}
$complemento->where = trim($complemento->where);
if($complemento->where !== '' ){
$complemento->where = strtoupper($complemento->where);
}
if($complemento->where!=='' && $complemento->where !=='WHERE'){
return $this->error->error(mensaje: 'Error where mal aplicado',data: $complemento->where, es_final: true);
}
return $complemento;
}