/** * 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; }