View file File name : DupArchiveDirectoryProcessor.php Content :<?php /** * * @package Duplicator * @copyright (c) 2021, Snapcreek LLC */ namespace Duplicator\Libs\DupArchive\Processors; use Duplicator\Libs\DupArchive\Headers\DupArchiveDirectoryHeader; use Duplicator\Libs\DupArchive\States\DupArchiveCreateState; use Duplicator\Libs\Snap\SnapIO; class DupArchiveDirectoryProcessor { /** * Undocumented function * * @param DupArchiveCreateState $createState create state * @param resource $archiveHandle archive resource * @param string $sourceDirectoryPath source directory path * @param string $relativeDirectoryPath relative dirctory path * * @return void */ public static function writeDirectoryToArchive( DupArchiveCreateState $createState, $archiveHandle, $sourceDirectoryPath, $relativeDirectoryPath ) { $directoryHeader = new DupArchiveDirectoryHeader(); $directoryHeader->permissions = substr(sprintf('%o', fileperms($sourceDirectoryPath)), -4); $directoryHeader->mtime = SnapIO::filemtime($sourceDirectoryPath); $directoryHeader->relativePath = $relativeDirectoryPath; $directoryHeader->relativePathLength = strlen($directoryHeader->relativePath); $directoryHeader->writeToArchive($archiveHandle); // Just increment this here - the actual state save is on the outside after timeout or completion of all directories $createState->currentDirectoryIndex++; } }