jannmylj/zipstream-php

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

资助包维护!
maennchen

dev-main 2024-05-28 16:55 UTC

This package is not auto-updated.

Last update: 2024-09-18 16:41:10 UTC


README

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

不稳定分支

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\CompressionMethod
    • ZipStream\Exception*
    • ZipStream\ZipStream

存档选项

  • ZipStream\Option\Archive 已被替换,现在使用 ZipStream\ZipStream 构造函数中的命名参数。
  • 已删除存档选项 largeFileSizelargeFileMethod。如果您想根据文件大小使用不同的 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

关于作者