/** * Rozbudowany raport błędu dla MK_Exception i MK_Db_Exception. * Zapisanie zdarzenia w pliku tekstowym i wysłanie do logs.madkom.pl (dla developer:false) * * try { * // code * } catch (MK_Db_Exception $e) { * //MK_Error::setMoreTraceIgnorePath(array('Spirb->loadModule')); * die($e->getExtendedMessage()); * } catch (MK_Exception $e) { * die($e->getExtendedMessage()); * } * * @param bool $detailedLog * * @return string */ public function getExtendedMessage($detailedLog = true) { $retArray = array('success' => false, 'message' => $this->getMessage()); $_file = $this->getFile(); $_line = strval($this->getLine()); $_trace = MK_Error::getExtendedTrace($this); $debugMsg = $dbError = ''; if (MK_Db_PDO_Singleton::isInstance()) { $mkDb = new MK_Db_PDO(); $mkDb->transFail(); $dbError = $mkDb->getErrorMsg(); } if ($detailedLog == true) { if (empty($dbError)) { $debugMsg = MK_Error::fromException($retArray['message'], $_file, $_line, $_trace); } else { $debugMsg = MK_Error::fromDataBase($dbError, $_file, $_line, $_trace); } } else { $debugMsg = empty($dbError) ? $retArray['message'] : $dbError; } $retArray['debug'] = MK_DEBUG === true ? '<pre>' . $debugMsg . '</pre>' : ''; if (MK::isAjaxExecution(true)) { return json_encode($retArray); } return $retArray[MK_DEBUG === true ? 'debug' : 'message']; }
/** * Zwraca najważniejsze informacje dotyczace aplikacji (DLA Admina) * php index.php -mappinfo * Szczegółowy raport z dodatkowymi informacjami * php index.php -mappinfo true * * @param array $argv */ public function appinfo(array $argv) { $db = new MK_Db_PDO(); // Podstawowe informacje APPINFO $this->output(array('APP' => strtolower(APP_NAME), 'DATABASE' => DB_NAME, 'PASS' => DB_PASS, 'USER' => DB_USER, 'DBHOST' => DB_HOST, 'PORT' => DB_PORT, 'VERSION' => $db->getAppVersion())); // Dodatkowe informacje po wpisaniu parametru 'true' if (isset($argv[0]) && $argv[0] == 'true') { // ### DEVELOPER ### $this->output(array('RELEASED' => $db->getReleasedVersion(), 'MK_DEBUG' => (int) MK_DEBUG, 'MK_DEVELOPER' => (int) MK_DEVELOPER, 'MK_TEST' => (int) MK_TEST, 'MK_ERROR_JS_ENABLED' => (int) MK_ERROR_JS_ENABLED), MK_EOL . '### DEVELOPER ###'); // ### SESSION ### $this->output(array('SESSION_SAVE_HANDLER' => SESSION_SAVE_HANDLER, 'MK_DIR_SESSION' => MK_DIR_SESSION), MK_EOL . '### SESSION ###'); // ### MTM ### $this->output(array('APP_FILE_LOCK' => APP_FILE_LOCK, 'APP_STATUS_LOG' => APP_STATUS_LOG, 'MTM_FILE_LIST' => MTM_FILE_LIST, 'MTM_FILE_LOG' => MTM_FILE_LOG, 'MTM_FILE_LOCK' => MTM_FILE_LOCK), MK_EOL . '### MTM ###'); // ### LAST 3 UPGRADE COMPLETED TASK ### $this->output($this->prepareCompletedTasks($db->getCompletedTask(3), 'UPGRADE_COMPLETED_TASK_'), MK_EOL . '### LAST 3 UPGRADE COMPLETED TASK ###'); // ### LAST 5 UPGRADE LOGS ### $this->output(MK_Upgrade_Logs::getInfo(5, 'LAST_UPGRADE_LOGS_'), MK_EOL . '### LAST 5 UPGRADE LOGS ###'); } exit; }
/** * Uruchamia proces aktualizacji */ public function begin() { // ustawienie glownego katalogu do upgradu $this->setUpgradeFolder(APP_PATH . DIRECTORY_SEPARATOR . 'upgrade'); // ustawienie katalogu do zapisywania logow $this->setUpgradeLogFolder(APP_PATH . DIRECTORY_SEPARATOR . 'upgrade' . DIRECTORY_SEPARATOR . 'log'); // ustawienie katalogu do zapisywania backupu $this->setUpgradeBackupFolder(APP_PATH . DIRECTORY_SEPARATOR . 'upgrade' . DIRECTORY_SEPARATOR . 'backup' . DIRECTORY_SEPARATOR . MK_Registry::get("upgradeBeginTime")); // ustawienie katalogu do plikow sql i parserow $this->setUpgradeSourceFolder(APP_PATH . DIRECTORY_SEPARATOR . 'upgrade' . DIRECTORY_SEPARATOR . 'source'); self::writeToLog('URUCHAMIANIE PROCESU AKTUALIZACJI'); self::writeToLog('Ustanowienie połączenia do bazy danych'); parent::__construct(); self::writeToLog('Rozpoczynanie transakcji sql (BEGIN)'); $this->transStart(); // ustawienie stanu aplikacji na upgrade self::writeToLog('Ustawianie aplikacji w stan: upgrade'); $this->changeApplicationState('upgrade'); // sprawdzenie licencji $this->checkLicence(); // czyszczenie sessji użytkowników self::writeToLog('Czyszczenie sesji użytkowników'); $this->clearUserSessions(); self::writeToLog('UPGRADE ROZPOCZĘTY'); $this->proceed(); $this->clearDbComments(); self::writeToLog('Zamykanie transakcji sql (COMMIT)'); $this->transComplete(); // ustawienie stanu aplikacji na działającą self::writeToLog('Ustawianie aplikacji w stan: running'); $this->changeApplicationState('running'); self::writeToLog('UPGRADE ZAKOŃCZONY'); die("true"); }