maennchen/zipstream-php

ZipStream 是一个库,可以从 PHP 动态流式传输动态的 zip 文件,服务器上无需写入磁盘。

资助包维护!
maennchen

安装次数: 174,405,912

依赖者: 118

建议者: 1

安全性: 0

星标: 1,712

关注者: 22

分支: 104

开放问题: 3

3.1.0 2023-06-21 14:59 UTC

README

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

不稳定分支

主分支不是稳定的。请参阅发布版以获取稳定版本。

概述

一个快速简单的 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 已被构造函数中的命名参数所替代。
  • 已删除存档选项 largeFileSizelargeFileMethod。如果要根据文件大小使用不同的 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

关于作者