| 1 | efrain | 1 | <?php
 | 
        
           |  |  | 2 |   | 
        
           |  |  | 3 | declare(strict_types=1);
 | 
        
           |  |  | 4 |   | 
        
           |  |  | 5 | namespace ZipStream;
 | 
        
           |  |  | 6 |   | 
        
           |  |  | 7 | /**
 | 
        
           |  |  | 8 |  * @internal
 | 
        
           |  |  | 9 |  */
 | 
        
           |  |  | 10 | abstract class EndOfCentralDirectory
 | 
        
           |  |  | 11 | {
 | 
        
           |  |  | 12 |     private const SIGNATURE = 0x06054b50;
 | 
        
           |  |  | 13 |   | 
        
           |  |  | 14 |     public static function generate(
 | 
        
           |  |  | 15 |         int $numberOfThisDisk,
 | 
        
           |  |  | 16 |         int $numberOfTheDiskWithCentralDirectoryStart,
 | 
        
           |  |  | 17 |         int $numberOfCentralDirectoryEntriesOnThisDisk,
 | 
        
           |  |  | 18 |         int $numberOfCentralDirectoryEntries,
 | 
        
           |  |  | 19 |         int $sizeOfCentralDirectory,
 | 
        
           |  |  | 20 |         int $centralDirectoryStartOffsetOnDisk,
 | 
        
           |  |  | 21 |         string $zipFileComment,
 | 
        
           |  |  | 22 |     ): string {
 | 
        
           |  |  | 23 |         /** @psalm-suppress MixedArgument */
 | 
        
           |  |  | 24 |         return PackField::pack(
 | 
        
           |  |  | 25 |             new PackField(format: 'V', value: static::SIGNATURE),
 | 
        
           |  |  | 26 |             new PackField(format: 'v', value: $numberOfThisDisk),
 | 
        
           |  |  | 27 |             new PackField(format: 'v', value: $numberOfTheDiskWithCentralDirectoryStart),
 | 
        
           |  |  | 28 |             new PackField(format: 'v', value: $numberOfCentralDirectoryEntriesOnThisDisk),
 | 
        
           |  |  | 29 |             new PackField(format: 'v', value: $numberOfCentralDirectoryEntries),
 | 
        
           |  |  | 30 |             new PackField(format: 'V', value: $sizeOfCentralDirectory),
 | 
        
           |  |  | 31 |             new PackField(format: 'V', value: $centralDirectoryStartOffsetOnDisk),
 | 
        
           |  |  | 32 |             new PackField(format: 'v', value: strlen($zipFileComment)),
 | 
        
           |  |  | 33 |         ) . $zipFileComment;
 | 
        
           |  |  | 34 |     }
 | 
        
           |  |  | 35 | }
 |