PluginProbe ʕ •ᴥ•ʔ
WP STAGING – WordPress Backup, Restore, Migration & Clone / 3.8.0
WP STAGING – WordPress Backup, Restore, Migration & Clone v3.8.0
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 1 year ago AbstractTask.php 2 years ago BackupTask.php 1 year ago FileBackupTask.php 1 year ago FileRestoreTask.php 1 year ago RestoreTask.php 1 year ago
RestoreTask.php
101 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 && !$jobDataDto->getBackupMetadata()->getIsExportingOtherWpRootFiles()
28 ) {
29 $jobDataDto->setDatabaseOnlyBackup(true);
30 }
31
32 parent::setJobDataDto($jobDataDto);
33 }
34
35 /**
36 * @param string $tmpPrefix
37 */
38 public function setTmpPrefix($tmpPrefix)
39 {
40 $this->tmpDatabasePrefix = $tmpPrefix;
41 }
42
43 /**
44 * @param string $table
45 * @param string $prefix
46 *
47 * @return string
48 */
49 public function addShortNameTable($table, $prefix)
50 {
51 $shortName = uniqid($prefix) . str_pad(rand(0, 999999), 6, '0');
52 if ($prefix === $this->tmpDatabasePrefix) {
53 $this->jobDataDto->addShortNameTableToRestore($table, $shortName);
54 } elseif ($prefix === PrepareRestore::TMP_DATABASE_PREFIX_TO_DROP) {
55 $this->jobDataDto->addShortNameTableToDrop($table, $shortName);
56 }
57
58 return $shortName;
59 }
60
61 /**
62 * @param string $table
63 * @param string $prefix
64 *
65 * @return string
66 */
67 public function getShortNameTable($table, $prefix)
68 {
69 $shortTables = [];
70 if ($prefix === $this->tmpDatabasePrefix) {
71 $shortTables = $this->jobDataDto->getShortNamesTablesToRestore();
72 } elseif ($prefix === PrepareRestore::TMP_DATABASE_PREFIX_TO_DROP) {
73 $shortTables = $this->jobDataDto->getShortNamesTablesToDrop();
74 }
75
76 return array_search($table, $shortTables);
77 }
78
79 /**
80 * @param string $table
81 * @param string $prefix
82 *
83 * @return string
84 */
85 public function getFullNameTableFromShortName($table, $prefix)
86 {
87 $shortTables = [];
88 if ($prefix === $this->tmpDatabasePrefix) {
89 $shortTables = $this->jobDataDto->getShortNamesTablesToRestore();
90 } elseif ($prefix === PrepareRestore::TMP_DATABASE_PREFIX_TO_DROP) {
91 $shortTables = $this->jobDataDto->getShortNamesTablesToDrop();
92 }
93
94 if (!array_key_exists($table, $shortTables)) {
95 return $table;
96 }
97
98 return $shortTables[$table];
99 }
100 }
101