administrador.base.orm.modelo_base.genera_modelo.21.17.0 - gamboamartin/administrador GitHub Wiki

genera_modelo

Esta función pública se encarga de generar una instancia de un modelo de datos a partir de su nombre, opcionalmente especificando un namespace.

Signatura


final public function genera_modelo(string $modelo, string $namespace_model = ''):array|modelo

Parámetros

  • $modelo (string): El nombre del modelo de datos.

  • $namespace_model (string, opcional): El namespace del modelo de datos.

Retorna

  • Tipo: array|modelo
  • Descripción: Un objeto del tipo modelo correspondiente, o un array que contiene un mensaje de error si ocurre algún problema durante el proceso.

Explicación Detallada

Generación del nombre del modelo: Se llama a la función genera_name_modelo() para obtener el nombre completo del modelo, incluyendo el namespace si se proporciona. Si ocurre un error durante este proceso, se devuelve un mensaje de error.

Validación del modelo: Se llama a la función valida_data_modelo() para validar el nombre del modelo. Si ocurre un error durante este proceso, se devuelve un mensaje de error.

Creación de la instancia del modelo: Se crea una nueva instancia del modelo utilizando el nombre generado anteriormente y se devuelve.

Retorno de datos o mensaje de error: Si el proceso se realiza correctamente, se devuelve la instancia del modelo. De lo contrario, se devuelve un array que contiene un mensaje de error.

Ejemplos

// Ejemplo: Generar instancia de modelo
$modelo = "Usuario";
$namespace_model = "App\\Models";
$resultado_modelo = genera_modelo($modelo, $namespace_model);
if (is_object($resultado_modelo)) {
    // Usar la instancia del modelo
    echo "Instancia del modelo generada.";
} else {
    // Manejar el mensaje de error
    echo "Hubo un error al generar el modelo: ";
    var_dump($resultado_modelo);
}

Código de la Función

final public function genera_modelo(string $modelo, string $namespace_model = ''):array|modelo{

        $modelo = $this->genera_name_modelo(modelo: $modelo,namespace_model:  $namespace_model);
        if(errores::$error){
            return  $this->error->error(mensaje: "Error al maquetar name modelo",data: $modelo);
        }
        $valida = $this->validacion->valida_data_modelo(name_modelo: $modelo);
        if(errores::$error){
            return  $this->error->error(mensaje: "Error al validar modelo",data: $valida);
        }
        return new $modelo($this->link);
    }