maennchen / zipstream-php
ZipStream 是一个库,可以从 PHP 动态流式传输动态的 zip 文件,服务器上无需写入磁盘。
Requires
- php-64bit: ^8.1
- ext-mbstring: *
- ext-zlib: *
Requires (Dev)
- ext-zip: *
- friendsofphp/php-cs-fixer: ^3.16
- guzzlehttp/guzzle: ^7.5
- mikey179/vfsstream: ^1.6
- php-coveralls/php-coveralls: ^2.5
- phpunit/phpunit: ^10.0
- vimeo/psalm: ^5.0
Suggests
- guzzlehttp/psr7: ^2.4
- psr/http-message: ^2.0
This package is auto-updated.
Last update: 2024-08-24 20:18:52 UTC
README
不稳定分支
主分支不是稳定的。请参阅发布版以获取稳定版本。
概述
一个快速简单的 PHP 流式下载 zip 文件。使用此库可以节省将 Zip 写入磁盘的需要。您可以直接将其发送给用户,这要快得多。它可以与 S3 存储桶或任何 PSR7 流一起工作。
有关许可和保修信息,请参阅LICENSE 文件。
安装
如果使用 Composer 管理项目依赖项,请将 maennchen/zipstream-php 作为依赖项添加到项目的 composer.json 文件中。使用以下命令将包添加到项目的依赖项中
composer require maennchen/zipstream-php
用法
有关详细信息,请参阅文档。
// 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();
升级到 3.0.0 版本
通用
- 最低 PHP 版本:
8.1 - 仅支持 64 位架构。
- 类
ZipStream\Option\Method已被枚举ZipStream\CompressionMethod替换。 - 大多数类都标记为
@internal,不应从外部使用。如果您正在使用内部资源扩展此库,请提出问题,以便添加并发布干净的接口。外部可用的类和枚举包括ZipStream\CompressionMethodZipStream\Exception*ZipStream\ZipStream
存档选项
- 类
ZipStream\Option\Archive已被构造函数中的命名参数所替代。 - 已删除存档选项
largeFileSize和largeFileMethod。如果要根据文件大小使用不同的compressionMethods,您必须自己实现此功能。 - 存档选项
httpHeaderCallback的类型已从callable更改为Closure。 - 已用选项
defaultEnableZeroHeader替换了存档选项zeroHeader,并且可以针对每个文件进行覆盖。其默认值已从false更改为true。 - 已删除存档选项
statFiles,因为库不再以这种方式检查文件大小。 - 已用选项
defaultDeflateLevel替换了存档选项deflateLevel,并且可以针对每个文件进行覆盖。 - 构造函数
ZipStream\ZipStream的第一个参数(name)已用命名参数outputName替换。 - 如果
outputName为空,现在也将发送头信息。如果您不希望自动发送 http 头信息,请将sendHttpHeaders设置为false。
文件选项
- 类
ZipStream\Option\File已用构造函数中的命名参数ZipStream\ZipStream->addFile*函数所替代。 - 文件选项
method已重命名为compressionMethod。 - 文件选项
time已重命名为lastModificationDateTime。 - 文件选项
size已重命名为maxSize。
升级到版本 2.0.0
https://github.com/maennchen/ZipStream-PHP/tree/2.0.0#upgrade-to-version-200
升级到版本 1.0.0
https://github.com/maennchen/ZipStream-PHP/tree/2.0.0#upgrade-to-version-100
贡献
ZipStream-PHP 是一个协作项目。请查看 .github/CONTRIBUTING.md 文件。
版本支持
以下表格显示了支持的版本。
请勿提交任何与当前版本支持状态相矛盾的拉取请求。
注意:始终检查 main 上的 README 以获取最新信息。
此库与 PHP 核心支持保持一致。新功能和错误修复将仅针对当前状态的 PHP 版本。
参见: https://php.ac.cn/supported-versions.php
关于作者
- Paul Duncan pabs@pablotron.org - https://pablotron.org/
- Jonatan Männchen jonatan@maennchen.ch - https://maennchen.dev
- Jesse G. Donat donatj@gmail.com - https://donatstudios.com
- Nicolas CARPi nico-git@deltablot.email - https://www.deltablot.com
- Nik Barham nik@brokencube.co.uk - https://www.brokencube.co.uk