/** * Captura todas as exceções não tratadas do sistema. * * @param Exception $e */ function throwNewExceptionFromAnywhere($e) { $setup = BraghimSistemas::getInstance(); // Tenta carregar a tela de erro do MODULO. try { $setup->mvc = $setup->resolve($setup->mvc->moduleName, 'error', 'error'); } catch (Exception $ex) { // Tenta carregar a tela de erro // padrao do framework. try { $setup->mvc = $setup->resolve('ModuleError', 'error', 'error', __DIR__ . DIRECTORY_SEPARATOR . 'library'); } catch (Exception $ex2) { if (function_exists('createSystemLog')) { createSystemLog($e); } echo "Exception sem possibilidade de tratamento."; dump($e); } } $setup->mvc->exception = $e; // Ultima tentativa de dar certo, // se chegar aqui e der erro então // o projeto esta configurado incorretamente. try { $setup->run(); } catch (Exception $ex3) { if (function_exists('createSystemLog')) { createSystemLog($e); } echo "Exception sem possibilidade de tratamento."; dump($ex3); } }
/** * Primeiro metodo a ser chamado. * Configura o sistema. * * @return BraghimSistemas * @throws Exception */ public static function setup($modulesPath = null) { if (self::$instance == null) { if (!$modulesPath) { throw new \Exception("Necessário informar a pasta onde os módulos serão criados."); } self::$instance = new self(trim($modulesPath, DIRECTORY_SEPARATOR)); } return self::$instance; }