/** * {@inheritdoc} */ public function doTask() { $config = ConfigProvider::getInstance(); self::$logger = new Logger('BackupTask'); self::$logger->setLogProviderFile($config->get('app.file.store.dir') . 'logs/tasks.log'); if (!file_exists($config->get('backup.dir'))) { mkdir($config->get('backup.dir')); } $targetDir = $config->get('backup.dir') . date('Y-m-d') . '/'; if (file_exists($targetDir)) { FileUtils::deleteDirectoryContents($targetDir); } if (!file_exists($targetDir)) { mkdir($targetDir); } $back = new BackupUtils(); $back->backUpAttachmentsAndLogs($targetDir); $back->backUpDatabase($targetDir); $additionalDirectories = explode(',', $config->get('backup.include.dirs')); if (count($additionalDirectories) > 0) { foreach ($additionalDirectories as $additionalDirectory) { FileUtils::copy($additionalDirectory, $targetDir . basename($additionalDirectory)); } } if ($config->get('backup.compress')) { FileUtils::zip($targetDir, $config->get('backup.dir') . date('Y-m-d') . '.zip'); // we can safely remove the uncompressed files now to save space... FileUtils::deleteDirectoryContents($targetDir . 'logs'); rmdir($targetDir . 'logs'); FileUtils::deleteDirectoryContents($targetDir . 'attachments'); rmdir($targetDir . 'attachments'); unlink($targetDir . $config->get('db.name') . '_' . date('Y-m-d') . '.sql'); if (count($additionalDirectories) > 0) { foreach ($additionalDirectories as $additionalDirectory) { FileUtils::deleteDirectoryContents($targetDir . basename($additionalDirectory)); rmdir($targetDir . basename($additionalDirectory)); } } } }
/** * Testing the zip() method. * * @since 2.0 */ public function testZip() { FileUtils::zip('./public/images/logo-small.png', '/tmp/logo-small.zip'); $this->assertTrue(file_exists('/tmp/logo-small.zip'), 'Testing the zip() method'); }