/** * @param File[] $files * * @return File[] */ public function compress($files) { $compressedLocation = $this->filesHelper->createTemporaryFile('compressed.' . $this->getExtension()); $compressedCommand = $this->createCommand($files, $compressedLocation); shell_exec($compressedCommand); if (file_exists($compressedLocation) && filesize($compressedLocation) > 0) { $compressedFile = new File($compressedLocation); return [$compressedFile]; } return []; }
/** * Returns the list of files generated for this dump. * * @param DatabaseSettings $settings * * @return File[] */ public function dump(DatabaseSettings $settings) { $files = []; if ($settings->wantsOneDumpPerTable()) { foreach ($this->getTablesToExport($settings) as $table) { $dumpLocation = $this->filesHelper->createTemporaryFile($settings->getDbName() . '.' . $table . '.sql'); $dumpCommand = $this->createCommand($settings, $dumpLocation, $table); $this->shellExecutor->execute($dumpCommand); if (file_exists($dumpLocation) && filesize($dumpLocation) > 0) { $files[] = new File($dumpLocation); } } } else { $dumpLocation = $this->filesHelper->createTemporaryFile($settings->getDbName() . '.sql'); $dumpCommand = $this->createCommand($settings, $dumpLocation); $this->shellExecutor->execute($dumpCommand); if (file_exists($dumpLocation) && filesize($dumpLocation) > 0) { $files[] = new File($dumpLocation); } } return $files; }