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 / Service / BackupMetadataEditor.php
wp-staging / Backup / Service Last commit date
Compression 2 years ago Database 2 years ago AbstractServiceProvider.php 2 years ago Archiver.php 2 years ago BackupAssets.php 2 years ago BackupMetadataEditor.php 3 years ago BackupSigner.php 2 years ago BackupsFinder.php 2 years ago Extractor.php 2 years ago FileBackupService.php 2 years ago FileBackupServiceProvider.php 2 years ago ServiceInterface.php 2 years ago ZlibCompressor.php 2 years ago
BackupMetadataEditor.php
38 lines
1 <?php
2
3 namespace WPStaging\Backup\Service;
4
5 use WPStaging\Framework\Filesystem\FileObject;
6 use WPStaging\Backup\Entity\BackupMetadata;
7
8 class BackupMetadataEditor
9 {
10 /**
11 * @param FileObject $backupFile It must be opened with File::MODE_APPEND
12 * @param BackupMetadata $newMetadata
13 */
14 public function setBackupMetadata(FileObject $backupFile, BackupMetadata $newMetadata)
15 {
16 $existingMetadataPosition = $backupFile->getExistingMetadataPosition();
17
18 $backupFile->fseek($existingMetadataPosition);
19
20 $maybeMetadataLine = $backupFile->readAndMoveNext();
21
22 // Validate metadata position
23 if (!is_array($backupFile->extractMetadata($maybeMetadataLine))) {
24 throw new \UnexpectedValueException('Could not find the existing metadata from the backup.');
25 }
26
27 $backupFile->ftruncate($existingMetadataPosition);
28 $backupFile->fseek($existingMetadataPosition);
29
30 $prepandForSql = '';
31 if ($backupFile->isSqlFile()) {
32 $prepandForSql = '-- ';
33 }
34
35 $backupFile->fwrite($prepandForSql . json_encode($newMetadata) . PHP_EOL);
36 }
37 }
38