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 / StagingSiteCreate.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
StagingSiteCreate.php
117 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\CreateDatabaseTablesTask;
8 use WPStaging\Staging\Tasks\StagingSite\Database\ImportDatabaseRowsTask;
9 use WPStaging\Staging\Tasks\StagingSite\Database\PrepareDatabaseRowsTask;
10 use WPStaging\Staging\Tasks\StagingSite\Filesystem\CopyMuPluginsTask;
11 use WPStaging\Staging\Tasks\StagingSite\Filesystem\CopyPluginsTask;
12 use WPStaging\Staging\Tasks\StagingSite\Filesystem\CopyThemesTask;
13 use WPStaging\Staging\Tasks\StagingSite\Filesystem\CopyUploadsTask;
14 use WPStaging\Staging\Tasks\StagingSite\Filesystem\CopyWpAdminTask;
15 use WPStaging\Staging\Tasks\StagingSite\Filesystem\CopyWpContentTask;
16 use WPStaging\Staging\Tasks\StagingSite\Filesystem\CopyWpIncludesTask;
17 use WPStaging\Staging\Tasks\StagingSite\Filesystem\CopyWpRootDirectoriesTask;
18 use WPStaging\Staging\Tasks\StagingSite\Filesystem\CopyWpRootFilesTask;
19 use WPStaging\Staging\Tasks\StagingSite\Filesystem\FilesystemScannerTask;
20 use WPStaging\Staging\Tasks\StagingSiteCreate\CreateRequirementsCheckTask;
21 use WPStaging\Staging\Tasks\StagingSiteCreate\FinishStagingSiteCreateTask;
22 use WPStaging\Staging\Traits\WithDataAdjustmentTasks;
23
24 class StagingSiteCreate extends AbstractJob
25 {
26 use WithDataAdjustmentTasks;
27
28
29 const ACTION_CLONING_COMPLETE = 'wpstg_cloning_complete';
30
31
32
33
34
35
36 const ACTION_STAGING_SITE_CREATED = 'wpstg_staging_site_created';
37
38
39 protected $jobDataDto;
40
41
42 protected $tasks = [];
43
44 public static function getJobName()
45 {
46 return 'staging_site_create';
47 }
48
49 protected function getJobTasks()
50 {
51 return $this->tasks;
52 }
53
54 protected function execute()
55 {
56 try {
57 $response = $this->getResponse($this->currentTask->execute());
58 } catch (\Exception $e) {
59 $this->currentTask->getLogger()->critical($e->getMessage());
60 $response = $this->getResponse($this->currentTask->generateResponse(false));
61 }
62
63 return $response;
64 }
65
66 protected function init()
67 {
68 $this->addRequirementsCheckTask();
69 $this->addDatabaseTasks();
70 $this->addFilesystemTasks();
71 $this->addAdvanceTasks();
72 $this->addDataAdjustmentTasks();
73 $this->addFinishStagingSiteCreateTask();
74 }
75
76 protected function addRequirementsCheckTask()
77 {
78 $this->tasks[] = CreateRequirementsCheckTask::class;
79 }
80
81 protected function addDatabaseTasks()
82 {
83
84 if ($this->jobDataDto->getAllTablesExcluded() && empty($this->jobDataDto->getNonSiteTables())) {
85 return;
86 }
87
88 $this->tasks[] = CreateDatabaseTablesTask::class;
89 $this->tasks[] = PrepareDatabaseRowsTask::class;
90 $this->tasks[] = ImportDatabaseRowsTask::class;
91 }
92
93 protected function addFilesystemTasks()
94 {
95 $this->tasks[] = FilesystemScannerTask::class;
96 $this->tasks[] = CopyWpRootFilesTask::class;
97 $this->tasks[] = CopyWpAdminTask::class;
98 $this->tasks[] = CopyWpIncludesTask::class;
99 $this->tasks[] = CopyPluginsTask::class;
100 $this->tasks[] = CopyMuPluginsTask::class;
101 $this->tasks[] = CopyThemesTask::class;
102 $this->tasks[] = CopyUploadsTask::class;
103 $this->tasks[] = CopyWpContentTask::class;
104 $this->tasks[] = CopyWpRootDirectoriesTask::class;
105 }
106
107 protected function addFinishStagingSiteCreateTask()
108 {
109 $this->tasks[] = FinishStagingSiteCreateTask::class;
110 }
111
112 protected function addAdvanceTasks()
113 {
114
115 }
116 }
117