Exemple #1
0
 public function __Construct()
 {
     //Tomamos la variable del Mod_Rewrite y validamos el url para determinar el path correspondiente
     $Url = SysMisNeural::LeerURLModReWrite();
     //Leemos el archivo de configuracion de accesos y lo convertimos en un array
     $Array = SysMisNeural::CargarArchivoYAMLAplicacion('Configuracion/ConfiguracionAcceso.yaml');
     //Validamos si hay una aplicacion seleccionada
     if (!empty($Url[0])) {
         //Validamos si la aplicacion existe
         if (array_key_exists(mb_strtoupper($Url[0]), $Array['APLICACIONES'])) {
             //Generamos las rutas de accesos
             $Carpeta = $Array['APLICACIONES'][mb_strtoupper($Url[0])]['CARPETA'];
             $Configuraciones = $Array['APLICACIONES'][mb_strtoupper($Url[0])]['CONFIGURACION'];
             $Ayudas = $Array['APLICACIONES'][mb_strtoupper($Url[0])]['AYUDAS'];
             $Controladores = $Array['APLICACIONES'][mb_strtoupper($Url[0])]['CONTROLADORES'];
             //Validamos que exista la carpeta correspondiente
             if (is_dir(__SysNeuralFileRootAplicacion__ . $Carpeta)) {
                 //Cargamos las Configuraciones de las ayudas y configuraciones aplicacion
                 SysMisNeural::IncluirAyudasConfiguracionesAplicacion($Carpeta, $Configuraciones, $Ayudas);
                 //Validamos si se ha ingresado un Controlador
                 if (isset($Url[1]) == true and empty($Url[1]) != true) {
                     //Generamos la ruta del Controlador
                     $Archivo = SysMisNeural::GenerarRutasArchivoAplicacion($Carpeta, $Controladores, $Url[1] . '.php');
                     //Validamos si existe el controlador correspondiente
                     if (file_exists($Archivo)) {
                         //Incluimos el archivo controlador correspondiente
                         require $Archivo;
                         //Validamos si tenemos un metodo
                         if (isset($Url[2]) == true and empty($Url[2]) != true) {
                             //Validamos si Existe el Metodo correspondiente
                             if (method_exists($Url[1], $Url[2])) {
                                 //Validamos que el metodo exista y sea publico
                                 if (array_key_exists($Url[2], SysMisNeural::ListarOrganizarMetodosClase($Url[1]))) {
                                     //Validamos que se haya enviado un parametro
                                     if (isset($Url[3]) == true and empty($Url[3]) != true) {
                                         //Cargamos el Controlador correspondiente
                                         $Controlador = new $Url[1]();
                                         $Controlador->CargarModelo($Url[1]);
                                         $Cantidad = count($Url) - 1;
                                         for ($i = 3; $i <= $Cantidad; $i++) {
                                             $Datos[] = '$Url[' . $i . ']';
                                         }
                                         $Lista = implode(', ', $Datos);
                                         eval("\$Controlador->\$Url[2](" . $Lista . ");");
                                         unset($Cantidad, $Datos, $Lista);
                                     } else {
                                         //Cargamos el Controlador correspondiente
                                         $Controlador = new $Url[1]();
                                         $Controlador->CargarModelo($Url[1]);
                                         $Controlador->{$Url}[2](false);
                                     }
                                 } else {
                                     //Indicamos el error de no encontrarse el Metodo correspondiente
                                     require __SysNeuralFileRootNeuralMensajesError__ . 'NoMetodo.php';
                                 }
                             } else {
                                 //Generamos el require para incluir el controlador correspondiente
                                 require SysMisNeural::GenerarRutasArchivoAplicacion($Carpeta, $Controladores, 'Error.php');
                                 //No existe el metodo generamos el error correspondiente
                                 $Controlador = new Error();
                                 $Controlador->CargarModelo('Error');
                                 $Controlador->Index(false);
                             }
                         } else {
                             //Instanciamos y procesamos los procedimientos correspondientes
                             $Controlador = new $Url[1]();
                             $Controlador->CargarModelo('Index');
                             $Controlador->Index(false);
                         }
                     } else {
                         //Indicamos el error de no encontrarse el controlador
                         require __SysNeuralFileRootNeuralMensajesError__ . 'NoControlador.php';
                     }
                 } else {
                     //Generamos el nombre del controlador correspondiente
                     $Archivo = SysMisNeural::GenerarRutasArchivoAplicacion($Carpeta, $Controladores, 'Index.php');
                     //Validamos si existe el controlador correspondiente
                     if (file_exists($Archivo)) {
                         //Incluimos el controlador correspondiente
                         require $Archivo;
                         //Instanciamos y procesamos los procedimientos correspondientes
                         $Controlador = new Index();
                         $Controlador->CargarModelo('Index');
                         $Controlador->Index(false);
                     } else {
                         //Indicamos el error de no existencia de controlador Index
                         require __SysNeuralFileRootNeuralMensajesError__ . 'NoIndex.php';
                     }
                 }
             } else {
                 //Generamos un Mensaje de Error de problema de la aplicacion configurada
                 require __SysNeuralFileRootNeuralMensajesError__ . 'AplicacionNoConfigurada.php';
             }
         } else {
             //Generamos error 404
             require __SysNeuralFileRootNeuralMensajesError__ . '404.php';
         }
     } else {
         //Generamos las rutas de accesos
         $Carpeta = $Array['APLICACIONES']['DEFAULT']['CARPETA'];
         $Configuraciones = $Array['APLICACIONES']['DEFAULT']['CONFIGURACION'];
         $Ayudas = $Array['APLICACIONES']['DEFAULT']['AYUDAS'];
         $Controladores = $Array['APLICACIONES']['DEFAULT']['CONTROLADORES'];
         //Validamos que la aplicacion se encuentre configurada y exista la carpeta de la aplicacion
         if (is_dir(__SysNeuralFileRootAplicacion__ . $Carpeta)) {
             //Cargamos las Configuraciones de las ayudas y configuraciones aplicacion
             SysMisNeural::IncluirAyudasConfiguracionesAplicacion($Carpeta, $Configuraciones, $Ayudas);
             //Generamos el require para incluir el controlador correspondiente
             require SysMisNeural::GenerarRutasArchivoAplicacion($Carpeta, $Controladores, 'Index.php');
             //Instanciamos y procesamos los procedimientos correspondientes
             $Controlador = new Index();
             $Controlador->CargarModelo('Index');
             $Controlador->Index(false);
         } else {
             require __SysNeuralFileRootNeuralMensajesError__ . 'AplicacionNoConfigurada.php';
         }
     }
 }
Exemple #2
0
 /**
  * Construimos el Nucleo Base
  * */
 public function __Construct()
 {
     //Tomamos la variable del Mod_Rewrite y validamos el url para determinar el path correspondiente
     $Url = SysNeuralNucleo::LeerURLModReWrite();
     //Leemos el archivo de configuracion de accesos y lo convertimos en un array
     $Array = SysNeuralNucleo::CargarArchivoJsonConfiguracion('ConfigAcceso.json');
     //Validamos si esta seleccionada un modulo
     if (!empty($Url[0])) {
         //Validamos si existe la aplicacion en el archivo de configuracion
         if (array_key_exists(mb_strtoupper($Url[0]), $Array)) {
             //Generamos las rutas de accesos
             $Modulo = $Array[mb_strtoupper($Url[0])]['Enrutamiento']['Carpeta'];
             $Configuracion = $Array[mb_strtoupper($Url[0])]['Configuracion'];
             $Configuraciones = $Array[mb_strtoupper($Url[0])]['Enrutamiento']['Configuracion'];
             $Controladores = $Array[mb_strtoupper($Url[0])]['Enrutamiento']['Controladores'];
             $Ayudas = $Array[mb_strtoupper($Url[0])]['Enrutamiento']['Ayudas'];
             $Vendors = $Array[mb_strtoupper($Url[0])]['Enrutamiento']['Vendors'];
             //Validamos que exista la carpeta del Modulo
             if (is_dir(__SysNeuralFileRootModulos__ . $Modulo)) {
                 //Cargamos las Ayudas
                 require __DIR__ . '/NeuralRutasApp.php';
                 //Cargamos las Configuraciones Correspondientes del modulo seleccionado
                 SysNeuralNucleo::CargarConfiguracionesModulo($Configuracion);
                 //Cargamos los Vendors de la aplicacion si esta activado
                 SysNeuralNucleo::CargarVendorsModulo($Modulo, $Configuraciones, $Vendors);
                 //Cargamos las ayudas de la aplicacion
                 SysNeuralNucleo::IncluirAyudasModulo($Modulo, $Ayudas);
                 //Validamos si se ha ingresado un Controlador en la URL
                 if (isset($Url[1]) == true and empty($Url[1]) != true) {
                     //Generamos el Nombre del Archivo
                     $PathControlador = SysNeuralNucleo::GenerarRutaArchivoModulo($Modulo, $Controladores, $Url[1]);
                     //Validamos si existe el archivo del controlador
                     if (file_exists($PathControlador)) {
                         //Incluimos el archivo del controlador
                         require $PathControlador;
                         //Validamos si existe un Metodo
                         if (isset($Url[2]) == true and empty($Url[2]) != true) {
                             //Validamos si Existe el metodo correspondiente
                             if (array_key_exists($Url[2], SysNeuralNucleo::ListarOrganizarMetodosClase($Url[1]))) {
                                 //Validamos si hay algun tipo de parametro
                                 if (isset($Url[3]) == true and empty($Url[3]) != true) {
                                     //Cargamos el Controlador correspondiente
                                     $Controlador = new $Url[1]();
                                     $Controlador->CargarModelo($Url[1]);
                                     $Cantidad = count($Url) - 1;
                                     for ($i = 3; $i <= $Cantidad; $i++) {
                                         $Datos[] = '$Url[' . $i . ']';
                                     }
                                     $Lista = implode(', ', $Datos);
                                     eval("\$Controlador->\$Url[2](" . $Lista . ");");
                                     unset($Cantidad, $Datos, $Lista);
                                 } else {
                                     //Cargamos el Controlador correspondiente
                                     $Controlador = new $Url[1]();
                                     $Controlador->CargarModelo($Url[1]);
                                     $Controlador->{$Url}[2](false);
                                 }
                             } else {
                                 //Validamos si el metodo existe
                                 if (method_exists($Url[1], $Url[2])) {
                                     //Generamos El mensaje de error de metodo protegido o privado
                                     SysNeuralNucleo::MostrarErroresEntorno($Configuracion, 'MetodoProtegido', '404', array('URL' => $Url, 'Modulo' => $Modulo));
                                     exit;
                                 } else {
                                     //Generamos El mensaje de error de metodo No Existe
                                     SysNeuralNucleo::MostrarErroresEntorno($Configuracion, 'MetodoNoExiste', '404', array('URL' => $Url, 'Modulo' => $Modulo));
                                     exit;
                                 }
                             }
                         } else {
                             //Validamos si existe el metodo Index
                             if (array_key_exists('Index', SysNeuralNucleo::ListarOrganizarMetodosClase($Url[1]))) {
                                 //Cargamos el Controlador correspondiente
                                 $Controlador = new $Url[1]();
                                 $Controlador->CargarModelo($Url[1]);
                                 $Controlador->Index(false);
                             } else {
                                 //Validamos si es un metodo protegido o privado
                                 if (method_exists($Url[1], $Url[2])) {
                                     //Generamos El mensaje de error de metodo protegido o privado
                                     SysNeuralNucleo::MostrarErroresEntorno($Configuracion, 'MetodoProtegido', '404', array('URL' => $Url, 'Modulo' => $Modulo));
                                     exit;
                                 } else {
                                     //Generamos El mensaje de error de metodo No Existe
                                     SysNeuralNucleo::MostrarErroresEntorno($Configuracion, 'MetodoNoExiste', '404', array('URL' => $Url, 'Modulo' => $Modulo));
                                     exit;
                                 }
                             }
                         }
                     } else {
                         //Generamos El mensaje de error de Controlador No Existe
                         SysNeuralNucleo::MostrarErroresEntorno($Configuracion, 'ControladorNoExiste', '404', array('URL' => $Url, 'Modulo' => $Modulo));
                         exit;
                     }
                 } else {
                     //Generamos el Nombre del Archivo
                     $PathControlador = SysNeuralNucleo::GenerarRutaArchivoModulo($Modulo, $Controladores, 'Index');
                     //Validamos si existe el Controlador Correspondiente
                     if (file_exists($PathControlador)) {
                         //Incluimos el archivo del controlador
                         require $PathControlador;
                         //Validamos si existe el metodo Index
                         if (array_key_exists('Index', SysNeuralNucleo::ListarOrganizarMetodosClase('Index'))) {
                             //Cargamos el Controlador correspondiente
                             $Controlador = new Index();
                             $Controlador->CargarModelo('Index');
                             $Controlador->Index(false);
                         } else {
                             //Validamos si es un metodo protegido o privado
                             if (method_exists('Index', 'Index')) {
                                 //Generamos El mensaje de error de metodo protegido o privado
                                 SysNeuralNucleo::MostrarErroresEntorno($Configuracion, 'MetodoProtegido', '404', array('URL' => array('Default', 'Index', 'Index'), 'Modulo' => $Modulo));
                                 exit;
                             } else {
                                 //Generamos El mensaje de error de metodo No Existe
                                 SysNeuralNucleo::MostrarErroresEntorno($Configuracion, 'MetodoNoExiste', '404', array('URL' => array('Default', 'Index', 'Index'), 'Modulo' => $Modulo));
                                 exit;
                             }
                         }
                     } else {
                         //Generamos El mensaje de error de Controlador No Existe
                         SysNeuralNucleo::MostrarErroresEntorno($Configuracion, 'ControladorNoExiste', '404', array('URL' => array($Url[0], 'Index'), 'Modulo' => $Modulo));
                         exit;
                     }
                 }
             } else {
                 //Generamos El mensaje de error de Carpeta No Existe
                 SysNeuralNucleo::MostrarErroresEntorno($Configuracion, 'CarpetaModuloNoExiste', '404', array('URL' => $Url, 'Modulo' => $Modulo));
                 exit;
             }
         } else {
             //Generamos la consulta de los datos de configuracion de la aplicacion DEFAULT
             $Configuracion = SysNeuralNucleo::CargarArchivoJsonConfiguracion('ConfigAcceso.json');
             //Generamos El mensaje de error de No Existe Modulo
             SysNeuralNucleo::MostrarErroresEntorno($Configuracion['DEFAULT']['Configuracion'], 'ModuloNoExiste', '404', array('Modulo' => $Url[0]));
             //Liberamos memoria
             unset($Configuracion);
             exit;
         }
     } else {
         //Generamos las rutas de accesos
         $Modulo = $Array['DEFAULT']['Enrutamiento']['Carpeta'];
         $Configuracion = $Array['DEFAULT']['Configuracion'];
         $Configuraciones = $Array['DEFAULT']['Enrutamiento']['Configuracion'];
         $Controladores = $Array['DEFAULT']['Enrutamiento']['Controladores'];
         $Ayudas = $Array['DEFAULT']['Enrutamiento']['Ayudas'];
         $Vendors = $Array['DEFAULT']['Enrutamiento']['Vendors'];
         //Validamos que exista la carpeta del Modulo
         if (is_dir(__SysNeuralFileRootModulos__ . $Modulo)) {
             //Cargamos las Ayudas
             require __DIR__ . '/NeuralRutasApp.php';
             //Cargamos las Configuraciones Correspondientes del modulo seleccionado
             SysNeuralNucleo::CargarConfiguracionesModulo($Configuracion);
             //Cargamos los Vendors de la aplicacion si esta activado
             SysNeuralNucleo::CargarVendorsModulo($Modulo, $Configuraciones, $Vendors);
             //Cargamos las ayudas de la aplicacion
             SysNeuralNucleo::IncluirAyudasModulo($Modulo, $Ayudas);
             //Generamos el Nombre del Archivo
             $PathControlador = SysNeuralNucleo::GenerarRutaArchivoModulo($Modulo, $Controladores, 'Index');
             //Validamos si existe el archivo del controlador
             if (file_exists($PathControlador)) {
                 //Incluimos el archivo del controlador
                 require $PathControlador;
                 //Validamos si existe el metodo Index
                 if (array_key_exists('Index', SysNeuralNucleo::ListarOrganizarMetodosClase('Index'))) {
                     //Cargamos el Controlador correspondiente
                     $Controlador = new Index();
                     $Controlador->CargarModelo('Index');
                     $Controlador->Index(false);
                 } else {
                     //Validamos si es un metodo protegido o privado
                     if (method_exists('Index', 'Index')) {
                         //Generamos El mensaje de error de metodo protegido o privado
                         SysNeuralNucleo::MostrarErroresEntorno($Configuracion, 'MetodoProtegido', '404', array('URL' => array('Default', 'Index', 'Index'), 'Modulo' => $Modulo));
                         exit;
                     } else {
                         //Generamos El mensaje de error de metodo No Existe
                         SysNeuralNucleo::MostrarErroresEntorno($Configuracion, 'MetodoNoExiste', '404', array('URL' => array('Default', 'Index', 'Index'), 'Modulo' => $Modulo));
                         exit;
                     }
                 }
             } else {
                 //Generamos El mensaje de error de Controlador No Existe
                 SysNeuralNucleo::MostrarErroresEntorno($Configuracion, 'ControladorNoExiste', '404', array('URL' => array('Default', 'Index'), 'Modulo' => $Modulo));
                 exit;
             }
         } else {
             //Generamos El mensaje de error de Carpeta No Existe
             SysNeuralNucleo::MostrarErroresEntorno($Configuracion, 'CarpetaModuloNoExiste', '404', array('URL' => $Url, 'Modulo' => $Modulo));
             exit;
         }
     }
     //Liberamos la memoria sobre los datos contenidos
     unset($Url, $Array);
 }