maennchen / ZipStream-PHP

:floppy_disk: PHP ZIP Streaming Library
https://maennchen.dev/ZipStream-PHP/
MIT License
1.74k stars 104 forks source link
php stream stream-http streaming-zip zip zipstream-php

ZipStream-PHP

Main Branch Coverage Status Latest Stable Version Total Downloads Financial Contributors on Open Collective License

Unstable Branch

The main branch is not stable. Please see the releases for a stable version.

Overview

A fast and simple streaming zip file downloader for PHP. Using this library will save you from having to write the Zip to disk. You can directly send it to the user, which is much faster. It can work with S3 buckets or any PSR7 Stream.

Please see the LICENSE file for licensing and warranty information.

Installation

Simply add a dependency on maennchen/zipstream-php to your project's composer.json file if you use Composer to manage the dependencies of your project. Use following command to add the package to your project's dependencies:

composer require maennchen/zipstream-php

Usage

For detailed instructions, please check the Documentation.

// Autoload the dependencies
require 'vendor/autoload.php';

// create a new zipstream object
$zip = new ZipStream\ZipStream(
    outputName: 'example.zip',

    // enable output of HTTP headers
    sendHttpHeaders: true,
);

// create a file named 'hello.txt'
$zip->addFile(
    fileName: 'hello.txt',
    data: 'This is the contents of hello.txt',
);

// add a file named 'some_image.jpg' from a local file 'path/to/image.jpg'
$zip->addFileFromPath(
    fileName: 'some_image.jpg',
    path: 'path/to/image.jpg',
);

// finish the zip stream
$zip->finish();

Upgrade to version 3.0.0

General

Archive Options

File Options

Upgrade to version 2.0.0

https://github.com/maennchen/ZipStream-PHP/tree/2.0.0#upgrade-to-version-200

Upgrade to version 1.0.0

https://github.com/maennchen/ZipStream-PHP/tree/2.0.0#upgrade-to-version-100

Contributing

ZipStream-PHP is a collaborative project. Please take a look at the .github/CONTRIBUTING.md file.

Version Support

Versions are supported according to the table below.

Please do not open any pull requests contradicting the current version support status.

Careful: Always check the README on main for up-to-date information.

Version New Features Bugfixes Security
3
2
1
0

This library aligns itself with the PHP core support. New features and bugfixes will only target PHP versions according to their current status.

See: https://www.php.net/supported-versions.php

About the Authors