PluginProbe ʕ •ᴥ•ʔ
WP STAGING – WordPress Backups, Restore, Migration & Clone / 4.9.4
WP STAGING – WordPress Backups, Restore, Migration & Clone v4.9.4
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 / Backup / Service / BackupMetadataEditor.php
wp-staging / Backup / Service Last commit date
Compression 5 months ago Database 1 month ago AbstractBackupsFinder.php 1 year ago AbstractExtractor.php 3 weeks ago AbstractServiceProvider.php 2 years ago Archiver.php 1 month ago BackupAssets.php 2 months ago BackupContent.php 1 year ago BackupMetadataEditor.php 1 year ago BackupMetadataReader.php 6 months ago BackupSigner.php 7 months ago BackupsDirectoryResolver.php 1 month ago BackupsFinder.php 1 month ago Extractor.php 1 month ago FileBackupService.php 3 weeks ago FileBackupServiceProvider.php 2 years ago ServiceInterface.php 2 years ago TmpBackupCleaner.php 1 month ago ZlibCompressor.php 1 year ago
BackupMetadataEditor.php
39 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 $backupMetadataReader = new BackupMetadataReader($backupFile);
17 $existingMetadataPosition = $backupMetadataReader->getExistingMetadataPosition();
18
19 $backupFile->fseek($existingMetadataPosition);
20
21 $maybeMetadataLine = $backupFile->readAndMoveNext();
22
23 // Validate metadata position
24 if (!is_array($backupMetadataReader->extractMetadata($maybeMetadataLine))) {
25 throw new \UnexpectedValueException('Could not find the existing metadata from the backup.');
26 }
27
28 $backupFile->ftruncate($existingMetadataPosition);
29 $backupFile->fseek($existingMetadataPosition);
30
31 $prepandForSql = '';
32 if ($backupFile->isSqlFile()) {
33 $prepandForSql = '-- ';
34 }
35
36 $backupFile->fwrite($prepandForSql . json_encode($newMetadata) . "\n");
37 }
38 }
39