Exemplo n.º 1
0
 /**
  * Implements the _finalize() abstract method
  *
  */
 protected function _finalize()
 {
     $this->setState('finished');
     // If we are in db backup mode, don't create a databases.ini
     $configuration = AEFactory::getConfiguration();
     if (!AEUtilScripting::getScriptingParameter('db.databasesini', 1)) {
         AEUtilLogger::WriteLog(_AE_LOG_DEBUG, __CLASS__ . " :: Skipping databases.ini");
     } else {
         // Create the databases.ini contents
         if ($this->installerSettings->databasesini) {
             $this->createDatabasesINI();
             AEUtilLogger::WriteLog(_AE_LOG_DEBUG, __CLASS__ . " :: Creating databases.ini");
             // Create a new string
             $databasesINI = $this->databases_ini;
             // BEGIN FIX 1.2 Stable -- databases.ini isn't written on disk
             AEUtilLogger::WriteLog(_AE_LOG_DEBUG, __CLASS__ . " :: Writing databases.ini contents");
             $archiver = AEFactory::getArchiverEngine();
             $virtualLocation = AEUtilScripting::getScriptingParameter('db.saveasname', 'normal') == 'short' ? '' : $this->installerSettings->sqlroot;
             $archiver->addVirtualFile('databases.ini', $virtualLocation, $databasesINI);
             // Error propagation
             $this->propagateFromObject($archiver);
             if ($this->getError()) {
                 return false;
             }
         }
     }
     // On alldb mode, we have to finalize the archive as well
     if (AEUtilScripting::getScriptingParameter('db.finalizearchive', 0)) {
         AEUtilLogger::WriteLog(_AE_LOG_INFO, "Finalizing database dump archive");
         $archiver = AEFactory::getArchiverEngine();
         $archiver->finalize();
         // Error propagation
         $this->propagateFromObject($archiver);
         if ($this->getError()) {
             return false;
         }
     }
     // In CLI mode we'll also close the database connection
     if (defined('AKEEBACLI')) {
         AEUtilLogger::WriteLog(_AE_LOG_INFO, "Closing the database connection to the main database");
         $db = AEFactory::unsetDatabase();
     }
     return true;
 }