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\CompressionMethod
ZipStream\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 [email protected] - https://pablotron.org/
- Jonatan Männchen [email protected] - https://maennchen.dev
- Jesse G. Donat [email protected] - https://donatstudios.com
- Nicolas CARPi [email protected] - https://www.deltablot.com
- Nik Barham [email protected] - https://www.brokencube.co.uk