jannmylj / zipstream-php
ZipStream 是一个库,可以从 PHP 动态流式传输 zip 文件,无需在服务器上写入磁盘。
Requires
- php-64bit: ^8.0
- 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 not auto-updated.
Last update: 2024-09-18 16:41:10 UTC
README
不稳定分支
main 分支不稳定。请参阅 发布版 以获取稳定版本。
概述
一个快速简单的 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已被替换,现在使用ZipStream\ZipStream构造函数中的命名参数。 - 已删除存档选项
largeFileSize和largeFileMethod。如果您想根据文件大小使用不同的compressionMethods,则必须自己实现。 - 存档选项
httpHeaderCallback的类型已从callable更改为Closure。 - 存档选项
zeroHeader已被替换为选项defaultEnableZeroHeader,并且可以针对每个文件进行覆盖。其默认值已从false更改为true。 - 已删除存档选项
statFiles,因为库不再以这种方式检查文件大小。 - 已将存档选项
deflateLevel替换为选项defaultDeflateLevel,并且可以针对每个文件进行覆盖。 - 构造函数
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