diff options
Diffstat (limited to 'vendor/maennchen/zipstream-php/src/EndOfCentralDirectory.php')
-rw-r--r-- | vendor/maennchen/zipstream-php/src/EndOfCentralDirectory.php | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/vendor/maennchen/zipstream-php/src/EndOfCentralDirectory.php b/vendor/maennchen/zipstream-php/src/EndOfCentralDirectory.php new file mode 100644 index 000000000..4320addc3 --- /dev/null +++ b/vendor/maennchen/zipstream-php/src/EndOfCentralDirectory.php @@ -0,0 +1,35 @@ +<?php + +declare(strict_types=1); + +namespace ZipStream; + +/** + * @internal + */ +abstract class EndOfCentralDirectory +{ + private const SIGNATURE = 0x06054b50; + + public static function generate( + int $numberOfThisDisk, + int $numberOfTheDiskWithCentralDirectoryStart, + int $numberOfCentralDirectoryEntriesOnThisDisk, + int $numberOfCentralDirectoryEntries, + int $sizeOfCentralDirectory, + int $centralDirectoryStartOffsetOnDisk, + string $zipFileComment, + ): string { + /** @psalm-suppress MixedArgument */ + return PackField::pack( + new PackField(format: 'V', value: static::SIGNATURE), + new PackField(format: 'v', value: $numberOfThisDisk), + new PackField(format: 'v', value: $numberOfTheDiskWithCentralDirectoryStart), + new PackField(format: 'v', value: $numberOfCentralDirectoryEntriesOnThisDisk), + new PackField(format: 'v', value: $numberOfCentralDirectoryEntries), + new PackField(format: 'V', value: $sizeOfCentralDirectory), + new PackField(format: 'V', value: $centralDirectoryStartOffsetOnDisk), + new PackField(format: 'v', value: strlen($zipFileComment)), + ) . $zipFileComment; + } +} |