PluginProbe ʕ •ᴥ•ʔ
WP STAGING – WordPress Backups, Restore, Migration & Clone / 4.11.0
WP STAGING – WordPress Backups, Restore, Migration & Clone v4.11.0
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 / Staging / Jobs / StagingSiteUpdate.php
wp-staging / Staging / Jobs Last commit date
StagingJobsProvider.php 7 months ago StagingSiteCreate.php 1 day ago StagingSiteDelete.php 1 day ago StagingSiteReset.php 1 day ago StagingSiteUpdate.php 1 day ago
StagingSiteUpdate.php
128 lines
1 <?php
2
3 namespace WPStaging\Staging\Jobs;
4
5 use WPStaging\Framework\Job\AbstractJob;
6 use WPStaging\Staging\Dto\Job\StagingSiteJobsDataDto;
7 use WPStaging\Staging\Tasks\StagingSite\Database\CleanupExistingPreservedTablesTask;
8 use WPStaging\Staging\Tasks\StagingSite\Database\CleanupPreservedTablesTask;
9 use WPStaging\Staging\Tasks\StagingSite\Database\ImportDatabaseRowsTask;
10 use WPStaging\Staging\Tasks\StagingSite\Database\PrepareDatabaseRowsTask;
11 use WPStaging\Staging\Tasks\StagingSite\Database\PrepareStagingSiteTablesTask;
12 use WPStaging\Staging\Tasks\StagingSite\DatabaseAdjustment\PreserveOptionsOnUpdateTask;
13 use WPStaging\Staging\Tasks\StagingSite\Filesystem\CopyMuPluginsTask;
14 use WPStaging\Staging\Tasks\StagingSite\Filesystem\CopyPluginsTask;
15 use WPStaging\Staging\Tasks\StagingSite\Filesystem\CopyThemesTask;
16 use WPStaging\Staging\Tasks\StagingSite\Filesystem\CopyUploadsTask;
17 use WPStaging\Staging\Tasks\StagingSite\Filesystem\CopyWpAdminTask;
18 use WPStaging\Staging\Tasks\StagingSite\Filesystem\CopyWpContentTask;
19 use WPStaging\Staging\Tasks\StagingSite\Filesystem\CopyWpIncludesTask;
20 use WPStaging\Staging\Tasks\StagingSite\Filesystem\CopyWpRootDirectoriesTask;
21 use WPStaging\Staging\Tasks\StagingSite\Filesystem\CopyWpRootFilesTask;
22 use WPStaging\Staging\Tasks\StagingSite\Filesystem\FilesystemScannerTask;
23 use WPStaging\Staging\Tasks\StagingSiteUpdate\FinishStagingSiteUpdateTask;
24 use WPStaging\Staging\Tasks\StagingSiteUpdate\UpdateRequirementsCheckTask;
25 use WPStaging\Staging\Traits\WithDataAdjustmentTasks;
26
27 class StagingSiteUpdate extends AbstractJob
28 {
29 use WithDataAdjustmentTasks;
30
31
32 const ACTION_CLONING_COMPLETE = 'wpstg_cloning_complete';
33
34
35 protected $jobDataDto;
36
37
38 protected $tasks = [];
39
40 public static function getJobName()
41 {
42 return 'staging_site_update';
43 }
44
45 protected function getJobTasks()
46 {
47 return $this->tasks;
48 }
49
50 protected function execute()
51 {
52 try {
53 $response = $this->getResponse($this->currentTask->execute());
54 } catch (\Exception $e) {
55 $this->currentTask->getLogger()->critical($e->getMessage());
56 $response = $this->getResponse($this->currentTask->generateResponse(false));
57 }
58
59 return $response;
60 }
61
62 protected function init()
63 {
64 $this->addRequirementsCheckTask();
65 $this->addDatabaseTasks();
66 $this->addFilesystemTasks();
67 $this->addAdvanceTasks();
68 $this->addDataAdjustmentTasks();
69 $this->addPostUpdateCleanupTask();
70 $this->addFinishStagingSiteUpdateTask();
71 }
72
73 protected function addRequirementsCheckTask()
74 {
75 $this->tasks[] = UpdateRequirementsCheckTask::class;
76 }
77
78 protected function addDatabaseTasks()
79 {
80
81 if ($this->jobDataDto->getAllTablesExcluded() && empty($this->jobDataDto->getNonSiteTables())) {
82 return;
83 }
84
85 $this->tasks[] = CleanupExistingPreservedTablesTask::class;
86 $this->tasks[] = PrepareStagingSiteTablesTask::class;
87 $this->tasks[] = PrepareDatabaseRowsTask::class;
88 $this->tasks[] = ImportDatabaseRowsTask::class;
89 }
90
91 protected function addFilesystemTasks()
92 {
93 $this->tasks[] = FilesystemScannerTask::class;
94 $this->tasks[] = CopyWpRootFilesTask::class;
95 $this->tasks[] = CopyWpAdminTask::class;
96 $this->tasks[] = CopyWpIncludesTask::class;
97 $this->tasks[] = CopyPluginsTask::class;
98 $this->tasks[] = CopyMuPluginsTask::class;
99 $this->tasks[] = CopyThemesTask::class;
100 $this->tasks[] = CopyUploadsTask::class;
101 $this->tasks[] = CopyWpContentTask::class;
102 $this->tasks[] = CopyWpRootDirectoriesTask::class;
103 }
104
105 protected function addFinishStagingSiteUpdateTask()
106 {
107 $this->tasks[] = FinishStagingSiteUpdateTask::class;
108 }
109
110 protected function addPostUpdateCleanupTask()
111 {
112 if ($this->jobDataDto->getAllTablesExcluded() && empty($this->jobDataDto->getNonSiteTables())) {
113 return;
114 }
115
116 $this->tasks[] = CleanupPreservedTablesTask::class;
117 }
118
119 protected function addAdvanceTasks()
120 {
121 if ($this->jobDataDto->getAllTablesExcluded() && empty($this->jobDataDto->getNonSiteTables())) {
122 return;
123 }
124
125 $this->tasks[] = PreserveOptionsOnUpdateTask::class;
126 }
127 }
128