Tasks
6 months ago
BackupTask.php
1 year ago
FileBackupTask.php
6 months ago
FileRestoreTask.php
1 year ago
RestoreTask.php
1 year ago
RestoreTask.php
67 lines
| 1 | <?php |
| 2 | |
| 3 | namespace WPStaging\Backup\Task; |
| 4 | |
| 5 | use WPStaging\Backup\Dto\Job\JobRestoreDataDto; |
| 6 | use WPStaging\Backup\Task\Tasks\JobRestore\ExtractFilesTask; |
| 7 | use WPStaging\Framework\Job\Dto\JobDataDto; |
| 8 | use WPStaging\Framework\Facades\Hooks; |
| 9 | use WPStaging\Framework\Job\Dto\TaskResponseDto; |
| 10 | use WPStaging\Framework\Job\Task\AbstractTask; |
| 11 | |
| 12 | abstract class RestoreTask extends AbstractTask |
| 13 | { |
| 14 | /** @var string */ |
| 15 | const FILTER_EXCLUDE_BACKUP_PARTS = 'wpstg.backup.restore.exclude_backup_parts'; |
| 16 | |
| 17 | /** @var JobRestoreDataDto */ |
| 18 | protected $jobDataDto; |
| 19 | |
| 20 | public function setJobDataDto(JobDataDto $jobDataDto) |
| 21 | { |
| 22 | /** @var JobRestoreDataDto $jobDataDto */ |
| 23 | if ( |
| 24 | $jobDataDto->getBackupMetadata()->getIsExportingDatabase() |
| 25 | && !$jobDataDto->getBackupMetadata()->getIsExportingMuPlugins() |
| 26 | && !$jobDataDto->getBackupMetadata()->getIsExportingOtherWpContentFiles() |
| 27 | && !$jobDataDto->getBackupMetadata()->getIsExportingPlugins() |
| 28 | && !$jobDataDto->getBackupMetadata()->getIsExportingThemes() |
| 29 | && !$jobDataDto->getBackupMetadata()->getIsExportingUploads() |
| 30 | && !$jobDataDto->getBackupMetadata()->getIsExportingOtherWpRootFiles() |
| 31 | ) { |
| 32 | $jobDataDto->setDatabaseOnlyBackup(true); |
| 33 | } |
| 34 | |
| 35 | parent::setJobDataDto($jobDataDto); |
| 36 | } |
| 37 | |
| 38 | protected function addLogMessageToResponse(TaskResponseDto $response) |
| 39 | { |
| 40 | /** |
| 41 | * If this backup contains only a database, let's not display log entries |
| 42 | * for file-related tasks, as they expose internal behavior of the backup |
| 43 | * feature that are not relevant to the user. |
| 44 | */ |
| 45 | if (!$this->jobDataDto->getDatabaseOnlyBackup()) { |
| 46 | $response->addMessage($this->logger->getLastLogMsg()); |
| 47 | return; |
| 48 | } |
| 49 | |
| 50 | if ( |
| 51 | !$this instanceof ExtractFilesTask |
| 52 | ) { |
| 53 | $response->addMessage($this->logger->getLastLogMsg()); |
| 54 | } |
| 55 | } |
| 56 | |
| 57 | protected function isBackupPartSkipped(string $partName): bool |
| 58 | { |
| 59 | $excludedParts = Hooks::applyFilters(self::FILTER_EXCLUDE_BACKUP_PARTS, []); |
| 60 | if (empty($excludedParts)) { |
| 61 | return false; |
| 62 | } |
| 63 | |
| 64 | return in_array($partName, $excludedParts); |
| 65 | } |
| 66 | } |
| 67 |