Пример #1
0
 /**
  * Implements the _finalize() abstract method
  *
  * @return  void
  */
 protected function _finalize()
 {
     $this->setState('finished');
     // If we are in db backup mode, don't create a databases.ini
     $configuration = Factory::getConfiguration();
     if (!Factory::getEngineParamsProvider()->getScriptingParameter('db.databasesini', 1)) {
         Factory::getLog()->log(LogLevel::DEBUG, __CLASS__ . " :: Skipping databases.ini");
     } elseif ($this->installerSettings->databasesini) {
         $this->createDatabasesINI();
         Factory::getLog()->log(LogLevel::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
         Factory::getLog()->log(LogLevel::DEBUG, __CLASS__ . " :: Writing databases.ini contents");
         $archiver = Factory::getArchiverEngine();
         $virtualLocation = Factory::getEngineParamsProvider()->getScriptingParameter('db.saveasname', 'normal') == 'short' ? '' : $this->installerSettings->sqlroot;
         $archiver->addVirtualFile('databases.ini', $virtualLocation, $databasesINI);
         // Error propagation
         $this->propagateFromObject($archiver);
         if ($this->getError()) {
             return;
         }
     }
     // On alldb mode, we have to finalize the archive as well
     if (Factory::getEngineParamsProvider()->getScriptingParameter('db.finalizearchive', 0)) {
         Factory::getLog()->log(LogLevel::INFO, "Finalizing database dump archive");
         $archiver = Factory::getArchiverEngine();
         $archiver->finalize();
         // Error propagation
         $this->propagateFromObject($archiver);
         if ($this->getError()) {
             return;
         }
     }
     // In CLI mode we'll also close the database connection
     if (defined('AKEEBACLI')) {
         Factory::getLog()->log(LogLevel::INFO, "Closing the database connection to the main database");
         Factory::unsetDatabase();
     }
     return;
 }