aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/maennchen/zipstream-php/src/CentralDirectoryFileHeader.php
diff options
context:
space:
mode:
authorHarald Eilertsen <haraldei@anduin.net>2024-11-07 19:23:35 +0100
committerHarald Eilertsen <haraldei@anduin.net>2024-11-08 16:43:29 +0100
commitfe30b5497593dcfb4445d72c99fa357011cebf46 (patch)
tree6d4d89fed5dcd52e26dd1e07e7cae04206c737d4 /vendor/maennchen/zipstream-php/src/CentralDirectoryFileHeader.php
parentb00ae997a5dab923a99e1f1cccf35bb52eba9a62 (diff)
downloadvolse-hubzilla-fe30b5497593dcfb4445d72c99fa357011cebf46.tar.gz
volse-hubzilla-fe30b5497593dcfb4445d72c99fa357011cebf46.tar.bz2
volse-hubzilla-fe30b5497593dcfb4445d72c99fa357011cebf46.zip
Update php-epub-meta and use composer for dep handling.
Note that we upgrade to the 2.x branch of the dependency, as the 3.x branch requires PHP version 8.2 or later. There's no reason for us to move our minimum supported version of PHP just yet.
Diffstat (limited to 'vendor/maennchen/zipstream-php/src/CentralDirectoryFileHeader.php')
-rw-r--r--vendor/maennchen/zipstream-php/src/CentralDirectoryFileHeader.php52
1 files changed, 52 insertions, 0 deletions
diff --git a/vendor/maennchen/zipstream-php/src/CentralDirectoryFileHeader.php b/vendor/maennchen/zipstream-php/src/CentralDirectoryFileHeader.php
new file mode 100644
index 000000000..ffcfc6e97
--- /dev/null
+++ b/vendor/maennchen/zipstream-php/src/CentralDirectoryFileHeader.php
@@ -0,0 +1,52 @@
+<?php
+
+declare(strict_types=1);
+
+namespace ZipStream;
+
+use DateTimeInterface;
+
+/**
+ * @internal
+ */
+abstract class CentralDirectoryFileHeader
+{
+ private const SIGNATURE = 0x02014b50;
+
+ public static function generate(
+ int $versionMadeBy,
+ int $versionNeededToExtract,
+ int $generalPurposeBitFlag,
+ CompressionMethod $compressionMethod,
+ DateTimeInterface $lastModificationDateTime,
+ int $crc32,
+ int $compressedSize,
+ int $uncompressedSize,
+ string $fileName,
+ string $extraField,
+ string $fileComment,
+ int $diskNumberStart,
+ int $internalFileAttributes,
+ int $externalFileAttributes,
+ int $relativeOffsetOfLocalHeader,
+ ): string {
+ return PackField::pack(
+ new PackField(format: 'V', value: self::SIGNATURE),
+ new PackField(format: 'v', value: $versionMadeBy),
+ new PackField(format: 'v', value: $versionNeededToExtract),
+ new PackField(format: 'v', value: $generalPurposeBitFlag),
+ new PackField(format: 'v', value: $compressionMethod->value),
+ new PackField(format: 'V', value: Time::dateTimeToDosTime($lastModificationDateTime)),
+ new PackField(format: 'V', value: $crc32),
+ new PackField(format: 'V', value: $compressedSize),
+ new PackField(format: 'V', value: $uncompressedSize),
+ new PackField(format: 'v', value: strlen($fileName)),
+ new PackField(format: 'v', value: strlen($extraField)),
+ new PackField(format: 'v', value: strlen($fileComment)),
+ new PackField(format: 'v', value: $diskNumberStart),
+ new PackField(format: 'v', value: $internalFileAttributes),
+ new PackField(format: 'V', value: $externalFileAttributes),
+ new PackField(format: 'V', value: $relativeOffsetOfLocalHeader),
+ ) . $fileName . $extraField . $fileComment;
+ }
+}