administrador.base.orm.modelo_base.es_namespace_especial.21.8.0 - gamboamartin/administrador GitHub Wiki
es_namespace_especial
Esta función verifica si un modelo dado pertenece a un namespace especial basado en una lista de namespaces proporcionada.
Signatura
private function es_namespace_especial(string $modelo, array $namespaces): bool|array
Parámetros
$modelo (string): El nombre del modelo que se va a verificar. $namespaces (array): Un array que contiene los namespaces a comparar.
Retorna
- bool|array: La función devuelve un valor booleano
true
si el modelo pertenece a algún namespace especial, yfalse
si no pertenece. Si se detecta un error, devuelve un array con detalles del error.
Explicación Detallada
-
Verificación del modelo vacío: La función verifica si el modelo proporcionado está vacío. Si es así, devuelve un mensaje de error indicando que el modelo está vacío.
-
Inicialización de la variable de verificación: Se inicializa una variable
$es_namespace_especial_como_mis_inges
comofalse
que se utilizará para indicar si el modelo pertenece a algún namespace especial. -
Bucle a través de los namespaces: La función recorre cada namespace proporcionado en el array
$namespaces
. -
Verificación del namespace vacío: Se verifica si el namespace actual está vacío. Si es así, devuelve un mensaje de error indicando que el namespace está vacío.
-
Verificación de pertenencia al namespace: Se divide el modelo utilizando el namespace actual como delimitador. Si el modelo se divide en más de una parte, significa que pertenece al namespace actual y, por lo tanto, se marca como un namespace especial.
-
Devolución del resultado: Se devuelve el valor de la variable
$es_namespace_especial_como_mis_inges
, que indica si el modelo pertenece a algún namespace especial.
Ejemplos
// Llamada a la función es_namespace_especial
$modelo = 'gamboamartin\administrador\models\ModeloEspecial';
$namespaces = ['gamboamartin\administrador\models', 'gamboamartin\empleado\models'];
$resultado = es_namespace_especial($modelo, $namespaces);
if (is_bool($resultado)) {
if ($resultado) {
echo "El modelo pertenece a un namespace especial.";
} else {
echo "El modelo no pertenece a ningún namespace especial.";
}
} else {
echo "Error: " . $resultado['mensaje'];
}
Código de la Función
private function es_namespace_especial(string $modelo, array $namespaces): bool|array
{
if($modelo === ''){
return $this->error->error(mensaje: "Error modelo vacio", data: $modelo, es_final: true);
}
$es_namespace_especial_como_mis_inges = false;
foreach ($namespaces as $namespace) {
$namespace = trim($namespace);
if($namespace === ''){
return $this->error->error(mensaje: "Error namespace vacio", data: $namespaces, es_final: true);
}
$namespaces_explode = explode($namespace, $modelo);
if (is_array($namespaces_explode) && count($namespaces_explode)>1) {
$es_namespace_especial_como_mis_inges = true;
break;
}
}
return $es_namespace_especial_como_mis_inges;
}