aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/maennchen/zipstream-php/src/Zip64/EndOfCentralDirectory.php
diff options
context:
space:
mode:
authorMario Vavti <mario@mariovavti.com>2024-11-09 11:27:53 +0100
committerMario Vavti <mario@mariovavti.com>2024-11-09 11:27:53 +0100
commit954d92c354aef93cac7079472c55b53ac4a07d2a (patch)
tree9ece7278658a82e7f21e71a8cdc7cc13f5d91aed /vendor/maennchen/zipstream-php/src/Zip64/EndOfCentralDirectory.php
parent8dbebc2b426ac3a27d2476acb6ccc2f353f4212a (diff)
parent14207c68ca451c365b3fe1f8d267409da39f9498 (diff)
downloadvolse-hubzilla-954d92c354aef93cac7079472c55b53ac4a07d2a.tar.gz
volse-hubzilla-954d92c354aef93cac7079472c55b53ac4a07d2a.tar.bz2
volse-hubzilla-954d92c354aef93cac7079472c55b53ac4a07d2a.zip
Merge branch 'dev' into containers
Diffstat (limited to 'vendor/maennchen/zipstream-php/src/Zip64/EndOfCentralDirectory.php')
-rw-r--r--vendor/maennchen/zipstream-php/src/Zip64/EndOfCentralDirectory.php43
1 files changed, 43 insertions, 0 deletions
diff --git a/vendor/maennchen/zipstream-php/src/Zip64/EndOfCentralDirectory.php b/vendor/maennchen/zipstream-php/src/Zip64/EndOfCentralDirectory.php
new file mode 100644
index 000000000..08588e49c
--- /dev/null
+++ b/vendor/maennchen/zipstream-php/src/Zip64/EndOfCentralDirectory.php
@@ -0,0 +1,43 @@
+<?php
+
+declare(strict_types=1);
+
+namespace ZipStream\Zip64;
+
+use ZipStream\PackField;
+
+/**
+ * @internal
+ */
+abstract class EndOfCentralDirectory
+{
+ private const SIGNATURE = 0x06064b50;
+
+ public static function generate(
+ int $versionMadeBy,
+ int $versionNeededToExtract,
+ int $numberOfThisDisk,
+ int $numberOfTheDiskWithCentralDirectoryStart,
+ int $numberOfCentralDirectoryEntriesOnThisDisk,
+ int $numberOfCentralDirectoryEntries,
+ int $sizeOfCentralDirectory,
+ int $centralDirectoryStartOffsetOnDisk,
+ string $extensibleDataSector,
+ ): string {
+ $recordSize = 44 + strlen($extensibleDataSector); // (length of block - 12) = 44;
+
+ /** @psalm-suppress MixedArgument */
+ return PackField::pack(
+ new PackField(format: 'V', value: static::SIGNATURE),
+ new PackField(format: 'P', value: $recordSize),
+ new PackField(format: 'v', value: $versionMadeBy),
+ new PackField(format: 'v', value: $versionNeededToExtract),
+ new PackField(format: 'V', value: $numberOfThisDisk),
+ new PackField(format: 'V', value: $numberOfTheDiskWithCentralDirectoryStart),
+ new PackField(format: 'P', value: $numberOfCentralDirectoryEntriesOnThisDisk),
+ new PackField(format: 'P', value: $numberOfCentralDirectoryEntries),
+ new PackField(format: 'P', value: $sizeOfCentralDirectory),
+ new PackField(format: 'P', value: $centralDirectoryStartOffsetOnDisk),
+ ) . $extensibleDataSector;
+ }
+}