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 / FileBackupTask.php
wp-staging / Backup / Task Last commit date
RestoreFileHandlers 2 years ago Tasks 2 years ago AbstractTask.php 2 years ago BackupTask.php 2 years ago FileBackupTask.php 2 years ago FileRestoreTask.php 2 years ago RestoreTask.php 2 years ago
FileBackupTask.php
73 lines
1 <?php
2
3 // TODO PHP7.1; constant visibility
4
5 namespace WPStaging\Backup\Task;
6
7 use WPStaging\Backup\Dto\StepsDto;
8 use WPStaging\Backup\Dto\TaskResponseDto;
9 use WPStaging\Backup\Service\FileBackupService;
10 use WPStaging\Backup\Service\FileBackupServiceProvider;
11 use WPStaging\Backup\Task\BackupTask;
12 use WPStaging\Framework\Queue\SeekableQueueInterface;
13 use WPStaging\Framework\Utils\Cache\Cache;
14 use WPStaging\Vendor\Psr\Log\LoggerInterface;
15
16 abstract class FileBackupTask extends BackupTask
17 {
18 /** @var string */
19 const OTHER_WP_ROOT_IDENTIFIER = 'rootfiles';
20
21 /** @var FileBackupService */
22 protected $fileBackupService;
23
24 public function __construct(FileBackupServiceProvider $fileBackupServiceProvider, LoggerInterface $logger, Cache $cache, StepsDto $stepsDto, SeekableQueueInterface $taskQueue)
25 {
26 parent::__construct($logger, $cache, $stepsDto, $taskQueue);
27 $this->fileBackupService = $fileBackupServiceProvider->getService(); // @phpstan-ignore-line
28 }
29
30 public static function getTaskName(): string
31 {
32 return 'backup_file_task';
33 }
34
35 public static function getTaskTitle(): string
36 {
37 return 'Adding Files to Backup';
38 }
39
40 public function execute(): TaskResponseDto
41 {
42 $this->prepareFileBackupTask();
43 $this->fileBackupService->setupArchiver($this->getFileIdentifier(), $this->isOtherWpRootFilesTask());
44 $this->fileBackupService->execute();
45
46 return $this->generateResponse(false);
47 }
48
49 /** @return string */
50 abstract protected function getFileIdentifier(): string;
51
52 /**
53 * @return void
54 */
55 private function prepareFileBackupTask()
56 {
57 $this->fileBackupService->inject($this->taskQueue, $this->logger, $this->jobDataDto, $this->stepsDto);
58 if ($this->stepsDto->getTotal() > 0) {
59 return;
60 }
61
62 $this->stepsDto->setTotal($this->jobDataDto->getDiscoveredFilesByCategory($this->getFileIdentifier()));
63 }
64
65 /**
66 * @return bool
67 */
68 protected function isOtherWpRootFilesTask(): bool
69 {
70 return false;
71 }
72 }
73