/** * Convert collection to the archive. * * @return void */ public function execute() { if ($this->archive->open($this->backup->archivePath(), ZipArchive::CREATE | ZipArchive::OVERWRITE) === true) { $this->processCollection(); } $this->archive->close(); $this->backup->addToRemoval($this->backup->archivePath()); }
/** * Process single backup job. * * @param DatabaseContract $database * @param string $namespace */ private function instance(DatabaseContract $database, $namespace = '') { $file = $this->workingDir . '/' . $database->fileName(); if (is_file($file)) { unlink($file); } $filesystems = new Filesystems\FilesystemProvider($this->fileSystemConfig()); $filesystems->add(new Filesystems\LocalFilesystem()); $databases = new Databases\DatabaseProvider($this->databaseConfig($database)); $databases->add(new Databases\MysqlDatabase()); $databases->add(new Databases\PostgresqlDatabase()); $compressors = new Compressors\CompressorProvider(); $compressors->add(new Compressors\NullCompressor()); $manager = new Manager($filesystems, $databases, $compressors); $manager->makeBackup()->run('config', [new Destination('local', $database->fileName())], 'null'); $this->backup->addToCollection(['name' => $database->fileName(), 'path' => $file], $namespace); $this->backup->addToRemoval($file); }