PluginProbe ʕ •ᴥ•ʔ
WP STAGING – WordPress Backup, Restore, Migration & Clone / 3.3.1
WP STAGING – WordPress Backup, Restore, Migration & Clone v3.3.1
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
157 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->addFinalizeTask();
98 if ($this->jobDataDto->getRepeatBackupOnSchedule()) {
99 $this->addSchedulerTask();
100 }
101
102 $this->tasks[] = ValidateBackupTask::class;
103
104 $this->addStoragesTasks();
105
106 $this->addFinishBackupTask();
107 }
108
109 /**
110 * @return void
111 */
112 protected function addStoragesTasks()
113 {
114 // Used in PRO version
115 }
116
117 /**
118 * @return void
119 */
120 protected function addFinalizeTask()
121 {
122 $this->tasks[] = FinalizeBackupTask::class;
123 }
124
125 /**
126 * @return void
127 */
128 protected function addFinishBackupTask()
129 {
130 $this->tasks[] = FinishBackupTask::class;
131 }
132
133 /**
134 * @return void
135 */
136 protected function addSchedulerTask()
137 {
138 $this->tasks[] = ScheduleBackupTask::class;
139 }
140
141 /**
142 * @return void
143 */
144 protected function setRequirementTask()
145 {
146 $this->tasks[] = BackupRequirementsCheckTask::class;
147 }
148
149 /**
150 * @return void
151 */
152 protected function setScannerTask()
153 {
154 $this->tasks[] = FilesystemScannerTask::class;
155 }
156 }
157