19declare(strict_types=1);
44 $this->zip_options = $this->archives->zipOptions();
45 $this->unzip_options = $this->archives->unzipOptions();
52 string $directory_to_zip,
53 string $path_to_output_zip,
54 bool $ensure_top_directory =
false
56 $directory_to_zip = $this->normalizePath($directory_to_zip);
57 $path_to_output_zip = $this->normalizePath($path_to_output_zip);
59 $zip = $this->archives->zip(
62 ->withZipOutputPath(dirname($path_to_output_zip))
63 ->withZipOutputName(basename($path_to_output_zip))
64 ->withDirectoryHandling($ensure_top_directory ? ZipDirectoryHandling::ENSURE_SINGLE_TOP_DIR : ZipDirectoryHandling::KEEP_STRUCTURE)
67 $zip->addDirectory($directory_to_zip);
68 $zip_stream = $zip->get();
70 return $zip_stream->getSize() > 0;
78 ?
string $extract_to_path =
null,
79 bool $overwrite =
false,
81 bool $ensure_top_directory =
false
83 $extract_to_path ??= dirname($path_to_zip);
87 $dir_handling = $ensure_top_directory ? ZipDirectoryHandling::ENSURE_SINGLE_TOP_DIR : ZipDirectoryHandling::KEEP_STRUCTURE;
90 $unzip = $this->archives->unzip(
93 ->withZipOutputPath($extract_to_path)
94 ->withOverwrite($overwrite)
95 ->withDirectoryHandling($dir_handling)
97 return $unzip->extract();
Stream factory which enables the user to create streams without the knowledge of the concrete class.
static ofResource($resource)
Wraps an already created resource with the stream abstraction.
UnzipOptions $unzip_options
zip(string $directory_to_zip, string $path_to_output_zip, bool $ensure_top_directory=false)
unzip(string $path_to_zip, ?string $extract_to_path=null, bool $overwrite=false, bool $flat=false, bool $ensure_top_directory=false)
@ FLAT_STRUCTURE
@description Will keep the top directory of the ZIP file if there is one (simple unzip).