PluginProbe ʕ •ᴥ•ʔ
WP STAGING – WordPress Backup, Restore, Migration & Clone / 4.9.2
WP STAGING – WordPress Backup, Restore, Migration & Clone v4.9.2
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 / StagingSiteReset.php
wp-staging / Staging / Jobs Last commit date
StagingJobsProvider.php 5 months ago StagingSiteCreate.php 5 months ago StagingSiteDelete.php 1 year ago StagingSiteReset.php 2 weeks ago StagingSiteUpdate.php 2 weeks ago
StagingSiteReset.php
115 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\CleanupStagingFilesTask;
8 use WPStaging\Staging\Tasks\StagingSite\CleanupStagingTablesTask;
9 use WPStaging\Staging\Tasks\StagingSite\Database\CreateDatabaseTablesTask;
10 use WPStaging\Staging\Tasks\StagingSite\Database\ImportDatabaseRowsTask;
11 use WPStaging\Staging\Tasks\StagingSite\Database\PrepareDatabaseRowsTask;
12 use WPStaging\Staging\Tasks\StagingSite\Filesystem\CopyMuPluginsTask;
13 use WPStaging\Staging\Tasks\StagingSite\Filesystem\CopyPluginsTask;
14 use WPStaging\Staging\Tasks\StagingSite\Filesystem\CopyThemesTask;
15 use WPStaging\Staging\Tasks\StagingSite\Filesystem\CopyUploadsTask;
16 use WPStaging\Staging\Tasks\StagingSite\Filesystem\CopyWpAdminTask;
17 use WPStaging\Staging\Tasks\StagingSite\Filesystem\CopyWpContentTask;
18 use WPStaging\Staging\Tasks\StagingSite\Filesystem\CopyWpIncludesTask;
19 use WPStaging\Staging\Tasks\StagingSite\Filesystem\CopyWpRootDirectoriesTask;
20 use WPStaging\Staging\Tasks\StagingSite\Filesystem\CopyWpRootFilesTask;
21 use WPStaging\Staging\Tasks\StagingSite\Filesystem\FilesystemScannerTask;
22 use WPStaging\Staging\Tasks\StagingSiteReset\FinishStagingSiteResetTask;
23 use WPStaging\Staging\Tasks\StagingSiteReset\ResetRequirementsCheckTask;
24 use WPStaging\Staging\Traits\WithDataAdjustmentTasks;
25
26 class StagingSiteReset extends AbstractJob
27 {
28 use WithDataAdjustmentTasks;
29
30 /** @var string */
31 const ACTION_CLONING_COMPLETE = 'wpstg_cloning_complete';
32
33 /** @var StagingSiteJobsDataDto $jobDataDto */
34 protected $jobDataDto;
35
36 /** @var array The array of tasks to execute for this job. Populated at init(). */
37 protected $tasks = [];
38
39 public static function getJobName()
40 {
41 return 'staging_site_reset';
42 }
43
44 protected function getJobTasks()
45 {
46 return $this->tasks;
47 }
48
49 protected function execute()
50 {
51 try {
52 $response = $this->getResponse($this->currentTask->execute());
53 } catch (\Exception $e) {
54 $this->currentTask->getLogger()->critical($e->getMessage());
55 $response = $this->getResponse($this->currentTask->generateResponse(false));
56 }
57
58 return $response;
59 }
60
61 protected function init()
62 {
63 $this->addRequirementsCheckTask();
64 $this->addDatabaseTasks();
65 $this->addFilesystemTasks();
66 $this->addAdvanceTasks();
67 $this->addDataAdjustmentTasks();
68 $this->addFinishStagingSiteResetTask();
69 }
70
71 protected function addRequirementsCheckTask()
72 {
73 $this->tasks[] = ResetRequirementsCheckTask::class;
74 }
75
76 protected function addDatabaseTasks()
77 {
78 // Always drop the existing staging tables on a reset — that is the definition of a reset.
79 $this->tasks[] = CleanupStagingTablesTask::class;
80
81 if ($this->jobDataDto->getAllTablesExcluded() && empty($this->jobDataDto->getNonSiteTables())) {
82 return;
83 }
84
85 $this->tasks[] = CreateDatabaseTablesTask::class;
86 $this->tasks[] = PrepareDatabaseRowsTask::class;
87 $this->tasks[] = ImportDatabaseRowsTask::class;
88 }
89
90 protected function addFilesystemTasks()
91 {
92 $this->tasks[] = CleanupStagingFilesTask::class;
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 addFinishStagingSiteResetTask()
106 {
107 $this->tasks[] = FinishStagingSiteResetTask::class;
108 }
109
110 protected function addAdvanceTasks()
111 {
112 // no-op, used in PRO
113 }
114 }
115