PluginProbe ʕ •ᴥ•ʔ
WP STAGING – WordPress Backups, Restore, Migration & Clone / 3.1.2
WP STAGING – WordPress Backups, Restore, Migration & Clone v3.1.2
4.11.2 4.11.1 4.11.0 4.10.0 4.9.5 4.9.4 4.9.3 4.9.2 4.9.1 4.9.0 4.8.1 trunk 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.10.0 3.2.0 3.3.1 3.3.2 3.3.3 3.4.1 3.4.3 3.5.0 3.6.0 3.7.1 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.8.6 3.8.7 3.9.0 3.9.1 3.9.2 3.9.3 3.9.4 4.0.0 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.0 4.7.0 4.7.1 4.7.2 4.7.3 4.8.0
wp-staging / Backup / Job / Jobs / JobBackup.php
wp-staging / Backup / Job / Jobs Last commit date
JobBackup.php 3 years ago JobCancel.php 3 years ago JobRestore.php 3 years ago
JobBackup.php
121 lines
1 <?php
2
3 namespace WPStaging\Backup\Job\Jobs;
4
5 use WPStaging\Backup\Dto\Job\JobBackupDataDto;
6 use WPStaging\Backup\Job\AbstractJob;
7 use WPStaging\Backup\Task\Tasks\JobBackup\DatabaseBackupTask;
8 use WPStaging\Backup\Task\Tasks\JobBackup\BackupMuPluginsTask;
9 use WPStaging\Backup\Task\Tasks\JobBackup\BackupOtherFilesTask;
10 use WPStaging\Backup\Task\Tasks\JobBackup\BackupPluginsTask;
11 use WPStaging\Backup\Task\Tasks\JobBackup\BackupRequirementsCheckTask;
12 use WPStaging\Backup\Task\Tasks\JobBackup\BackupThemesTask;
13 use WPStaging\Backup\Task\Tasks\JobBackup\BackupUploadsTask;
14 use WPStaging\Backup\Task\Tasks\JobBackup\FilesystemScannerTask;
15 use WPStaging\Backup\Task\Tasks\JobBackup\FinalizeBackupTask;
16 use WPStaging\Backup\Task\Tasks\JobBackup\FinishBackupTask;
17 use WPStaging\Backup\Task\Tasks\JobBackup\ValidateBackupTask;
18 use WPStaging\Backup\Task\Tasks\JobBackup\IncludeDatabaseTask;
19 use WPStaging\Backup\Task\Tasks\JobBackup\ScheduleBackupTask;
20
21 class JobBackup extends AbstractJob
22 {
23 /** @var JobBackupDataDto $jobDataDto */
24 protected $jobDataDto;
25
26 /** @var array The array of tasks to execute for this job. Populated at init(). */
27 protected $tasks = [];
28
29 public static function getJobName()
30 {
31 return 'backup_job';
32 }
33
34 protected function getJobTasks()
35 {
36 return $this->tasks;
37 }
38
39 protected function execute()
40 {
41 //$this->startBenchmark();
42
43 try {
44 $response = $this->getResponse($this->currentTask->execute());
45 } catch (\Exception $e) {
46 $this->currentTask->getLogger()->critical('Backup job failed! Error: ' . $e->getMessage());
47 $response = $this->getResponse($this->currentTask->generateResponse(false));
48 }
49
50 //$this->finishBenchmark(get_class($this->currentTask));
51
52 return $response;
53 }
54
55 protected function init()
56 {
57 $this->setRequirementTask();
58
59 if ($this->jobDataDto->getRepeatBackupOnSchedule() && !$this->jobDataDto->getIsCreateScheduleBackupNow()) {
60 $this->addSchedulerTask();
61 $this->tasks[] = FinishBackupTask::class;
62 return;
63 }
64
65 $this->tasks[] = FilesystemScannerTask::class;
66 if ($this->jobDataDto->getIsExportingOtherWpContentFiles()) {
67 $this->tasks[] = BackupOtherFilesTask::class;
68 }
69
70 if ($this->jobDataDto->getIsExportingPlugins()) {
71 $this->tasks[] = BackupPluginsTask::class;
72 }
73
74 if ($this->jobDataDto->getIsExportingMuPlugins()) {
75 $this->tasks[] = BackupMuPluginsTask::class;
76 }
77
78 if ($this->jobDataDto->getIsExportingThemes()) {
79 $this->tasks[] = BackupThemesTask::class;
80 }
81
82 if ($this->jobDataDto->getIsExportingUploads()) {
83 $this->tasks[] = BackupUploadsTask::class;
84 }
85
86 if ($this->jobDataDto->getIsExportingDatabase()) {
87 $this->tasks[] = DatabaseBackupTask::class;
88 }
89
90 if ($this->jobDataDto->getIsExportingDatabase() && !$this->jobDataDto->getIsMultipartBackup()) {
91 $this->tasks[] = IncludeDatabaseTask::class;
92 }
93
94 $this->tasks[] = FinalizeBackupTask::class;
95 if ($this->jobDataDto->getRepeatBackupOnSchedule()) {
96 $this->addSchedulerTask();
97 }
98
99 $this->tasks[] = ValidateBackupTask::class;
100
101 $this->addStoragesTasks();
102
103 $this->tasks[] = FinishBackupTask::class;
104 }
105
106 protected function addStoragesTasks()
107 {
108 // Used in PRO version
109 }
110
111 protected function addSchedulerTask()
112 {
113 $this->tasks[] = ScheduleBackupTask::class;
114 }
115
116 protected function setRequirementTask()
117 {
118 $this->tasks[] = BackupRequirementsCheckTask::class;
119 }
120 }
121