From 0d1547c835aaee3610c297ce4527b6a0dc874806 Mon Sep 17 00:00:00 2001 From: erikn69 Date: Thu, 21 Dec 2023 11:59:30 -0500 Subject: [PATCH] Remove ZipStream V2 support (#3473) --- .../downloading-media/downloading-multiple-files.md | 12 +++--------- phpstan.neon.dist | 3 --- src/Support/MediaStream.php | 13 ++++--------- 3 files changed, 7 insertions(+), 21 deletions(-) diff --git a/docs/downloading-media/downloading-multiple-files.md b/docs/downloading-media/downloading-multiple-files.md index 351d575d2..631a7f2d3 100644 --- a/docs/downloading-media/downloading-multiple-files.md +++ b/docs/downloading-media/downloading-multiple-files.md @@ -47,15 +47,9 @@ class DownloadMediaController // Download the files associated with the media in a streamed way. // No prob if your files are very large. return MediaStream::create('my-files.zip') - ->useZipOptions(function(&$zipOptions) { - if (is_array($zipOptions)) { - // ZipStream ^3.0 uses array - $zipOptions['defaultEnableZeroHeader'] = true; - } else { - // ZipStream ^2.0 uses \ZipStream\Option\Archive - /** @var \ZipStream\Option\Archive $zipOptions */ - $zipOptions->setZeroHeader(true); - } + ->useZipOptions(function (&$zipOptions) { + // ZipStream ^3.0 uses array + $zipOptions['defaultEnableZeroHeader'] = true; }) ->addMedia($downloads); } diff --git a/phpstan.neon.dist b/phpstan.neon.dist index 4f4305456..bcc3121a5 100644 --- a/phpstan.neon.dist +++ b/phpstan.neon.dist @@ -18,6 +18,3 @@ parameters: # For MediaLibraryPro dependencies - "#MediaLibraryPro\\\\#" - - # This must be removed after drop ZipStream V2 - - "#ZipStream\\\\#" diff --git a/src/Support/MediaStream.php b/src/Support/MediaStream.php index 0d0f54cad..2e7be6f42 100644 --- a/src/Support/MediaStream.php +++ b/src/Support/MediaStream.php @@ -6,14 +6,13 @@ use Illuminate\Support\Collection; use Spatie\MediaLibrary\MediaCollections\Models\Media; use Symfony\Component\HttpFoundation\StreamedResponse; -use ZipStream\Option\Archive as ArchiveOptions; use ZipStream\ZipStream; class MediaStream implements Responsable { protected Collection $mediaItems; - protected array|ArchiveOptions $zipOptions; + protected array $zipOptions; public static function create(string $zipName): self { @@ -24,7 +23,7 @@ public function __construct(protected string $zipName) { $this->mediaItems = collect(); - $this->zipOptions = class_exists(ArchiveOptions::class) ? new ArchiveOptions() : []; + $this->zipOptions = []; } public function useZipOptions(callable $zipOptionsCallable): self @@ -74,12 +73,8 @@ public function toResponse($request): StreamedResponse public function getZipStream(): ZipStream { - if (class_exists(ArchiveOptions::class)) { - $zip = new ZipStream($this->zipName, $this->zipOptions); - } else { - $this->zipOptions['outputName'] = $this->zipName; - $zip = new ZipStream(...$this->zipOptions); - } + $this->zipOptions['outputName'] = $this->zipName; + $zip = new ZipStream(...$this->zipOptions); $this->getZipStreamContents()->each(function (array $mediaInZip) use ($zip) { $stream = $mediaInZip['media']->stream();