PluginProbe ʕ •ᴥ•ʔ
WP STAGING – WordPress Backups, Restore, Migration & Clone / 3.3.3
WP STAGING – WordPress Backups, Restore, Migration & Clone v3.3.3
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 2 years ago JobCancel.php 3 years ago JobRestore.php 2 years ago
JobBackup.php
164 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 /**
56 * @return void
57 */
58 protected function init()
59 {
60 $this->setRequirementTask();
61
62 if ($this->jobDataDto->getRepeatBackupOnSchedule() && !$this->jobDataDto->getIsCreateScheduleBackupNow()) {
63 $this->addSchedulerTask();
64 $this->addFinishBackupTask();
65 return;
66 }
67
68 $this->setScannerTask();
69 if ($this->jobDataDto->getIsExportingOtherWpContentFiles()) {
70 $this->tasks[] = BackupOtherFilesTask::class;
71 }
72
73 if ($this->jobDataDto->getIsExportingPlugins()) {
74 $this->tasks[] = BackupPluginsTask::class;
75 }
76
77 if ($this->jobDataDto->getIsExportingMuPlugins()) {
78 $this->tasks[] = BackupMuPluginsTask::class;
79 }
80
81 if ($this->jobDataDto->getIsExportingThemes()) {
82 $this->tasks[] = BackupThemesTask::class;
83 }
84
85 if ($this->jobDataDto->getIsExportingUploads()) {
86 $this->tasks[] = BackupUploadsTask::class;
87 }
88
89 if ($this->jobDataDto->getIsExportingDatabase()) {
90 $this->tasks[] = DatabaseBackupTask::class;
91 }
92
93 if ($this->jobDataDto->getIsExportingDatabase() && !$this->jobDataDto->getIsMultipartBackup()) {
94 $this->tasks[] = IncludeDatabaseTask::class;
95 }
96
97 $this->addCompressionTask();
98
99 $this->addFinalizeTask();
100 if ($this->jobDataDto->getRepeatBackupOnSchedule()) {
101 $this->addSchedulerTask();
102 }
103
104 $this->tasks[] = ValidateBackupTask::class;
105
106 $this->addStoragesTasks();
107
108 $this->addFinishBackupTask();
109 }
110
111 protected function addCompressionTask()
112 {
113 // Used in PRO version
114 }
115
116 /**
117 * @return void
118 */
119 protected function addStoragesTasks()
120 {
121 // Used in PRO version
122 }
123
124 /**
125 * @return void
126 */
127 protected function addFinalizeTask()
128 {
129 $this->tasks[] = FinalizeBackupTask::class;
130 }
131
132 /**
133 * @return void
134 */
135 protected function addFinishBackupTask()
136 {
137 $this->tasks[] = FinishBackupTask::class;
138 }
139
140 /**
141 * @return void
142 */
143 protected function addSchedulerTask()
144 {
145 $this->tasks[] = ScheduleBackupTask::class;
146 }
147
148 /**
149 * @return void
150 */
151 protected function setRequirementTask()
152 {
153 $this->tasks[] = BackupRequirementsCheckTask::class;
154 }
155
156 /**
157 * @return void
158 */
159 protected function setScannerTask()
160 {
161 $this->tasks[] = FilesystemScannerTask::class;
162 }
163 }
164