PluginProbe ʕ •ᴥ•ʔ
WP STAGING – WordPress Backup, Restore, Migration & Clone / 3.1.4
WP STAGING – WordPress Backup, Restore, Migration & Clone v3.1.4
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 / Task / RestoreTask.php
wp-staging / Backup / Task Last commit date
RestoreFileHandlers 2 years ago Tasks 2 years ago AbstractTask.php 2 years ago BackupTask.php 3 years ago FileBackupTask.php 2 years ago FileRestoreTask.php 3 years ago RestoreTask.php 2 years ago
RestoreTask.php
100 lines
1 <?php
2
3 namespace WPStaging\Backup\Task;
4
5 use WPStaging\Backup\Ajax\Restore\PrepareRestore;
6 use WPStaging\Backup\Dto\Job\JobRestoreDataDto;
7 use WPStaging\Backup\Dto\JobDataDto;
8
9 abstract class RestoreTask extends AbstractTask
10 {
11 /** @var JobRestoreDataDto */
12 protected $jobDataDto;
13
14 /** @var string */
15 protected $tmpDatabasePrefix;
16
17 public function setJobDataDto(JobDataDto $jobDataDto)
18 {
19 /** @var JobRestoreDataDto $jobDataDto */
20 if (
21 $jobDataDto->getBackupMetadata()->getIsExportingDatabase()
22 && !$jobDataDto->getBackupMetadata()->getIsExportingMuPlugins()
23 && !$jobDataDto->getBackupMetadata()->getIsExportingOtherWpContentFiles()
24 && !$jobDataDto->getBackupMetadata()->getIsExportingPlugins()
25 && !$jobDataDto->getBackupMetadata()->getIsExportingThemes()
26 && !$jobDataDto->getBackupMetadata()->getIsExportingUploads()
27 ) {
28 $jobDataDto->setDatabaseOnlyBackup(true);
29 }
30
31 parent::setJobDataDto($jobDataDto);
32 }
33
34 /**
35 * @param string $tmpPrefix
36 */
37 public function setTmpPrefix($tmpPrefix)
38 {
39 $this->tmpDatabasePrefix = $tmpPrefix;
40 }
41
42 /**
43 * @param string $table
44 * @param string $prefix
45 *
46 * @return string
47 */
48 public function addShortNameTable($table, $prefix)
49 {
50 $shortName = uniqid($prefix) . str_pad(rand(0, 999999), 6, '0');
51 if ($prefix === $this->tmpDatabasePrefix) {
52 $this->jobDataDto->addShortNameTableToRestore($table, $shortName);
53 } elseif ($prefix === PrepareRestore::TMP_DATABASE_PREFIX_TO_DROP) {
54 $this->jobDataDto->addShortNameTableToDrop($table, $shortName);
55 }
56
57 return $shortName;
58 }
59
60 /**
61 * @param string $table
62 * @param string $prefix
63 *
64 * @return string
65 */
66 public function getShortNameTable($table, $prefix)
67 {
68 $shortTables = [];
69 if ($prefix === $this->tmpDatabasePrefix) {
70 $shortTables = $this->jobDataDto->getShortNamesTablesToRestore();
71 } elseif ($prefix === PrepareRestore::TMP_DATABASE_PREFIX_TO_DROP) {
72 $shortTables = $this->jobDataDto->getShortNamesTablesToDrop();
73 }
74
75 return array_search($table, $shortTables);
76 }
77
78 /**
79 * @param string $table
80 * @param string $prefix
81 *
82 * @return string
83 */
84 public function getFullNameTableFromShortName($table, $prefix)
85 {
86 $shortTables = [];
87 if ($prefix === $this->tmpDatabasePrefix) {
88 $shortTables = $this->jobDataDto->getShortNamesTablesToRestore();
89 } elseif ($prefix === PrepareRestore::TMP_DATABASE_PREFIX_TO_DROP) {
90 $shortTables = $this->jobDataDto->getShortNamesTablesToDrop();
91 }
92
93 if (!array_key_exists($table, $shortTables)) {
94 return $table;
95 }
96
97 return $shortTables[$table];
98 }
99 }
100