clue/tar-react

使用ReactPHP提取tar文件的流式解析器。

v0.2.0 2019-09-09 18:32 UTC

This package is auto-updated.

Last update: 2024-09-04 08:50:10 UTC


README

CI status installs on Packagist

使用ReactPHP(ReactPHP)提取tar文件的流式解析器。

TAR文件格式是一种常见的归档格式,用于将多个文件存储在一个单独的归档文件中(通常称为“tarball”,扩展名为.tar)。这个轻量级库提供了一个高效的流式提取tarball的实现,一次处理内存中的一个块,无需依赖磁盘I/O。

目录

注意:此项目处于beta阶段!请随时报告您遇到的问题。

快速入门示例

安装后,您可以使用以下代码将可读的tar流管道传输到TarDecoder,它为每个单独的文件发出“entry”事件

<?php

require __DIR__ . '/vendor/autoload.php';

$stream = new React\Stream\ReadableResourceStream(fopen('archive.tar', 'r'));

$decoder = new Clue\React\Tar\TarDecoder();

$decoder->on('entry', function (array $header, React\Stream\ReadableStreamInterface $file) {
    echo 'File ' . $header['filename'];
    echo ' (' . $header['size'] . ' bytes):' . PHP_EOL;

    $file->on('data', function ($chunk) {
        echo $chunk;
    });
});

$stream->pipe($decoder);

请参阅示例

安装

建议通过Composer安装此库。您是Composer的新手吗?

在beta阶段,此项目目前不遵循SemVer。这将安装最新支持的版本

composer require clue/tar-react:^0.2

请参阅变更日志以获取有关版本升级的详细信息。

此项目旨在在任何平台上运行,因此不需要任何PHP扩展,并支持在旧版PHP 5.3到当前PHP 8+上运行。强烈建议使用此项目的最新支持的PHP版本。

测试

要运行测试套件,您首先需要克隆此存储库,然后通过Composer安装所有依赖项

composer install

要运行测试套件,请转到项目根目录并运行

vendor/bin/phpunit

许可证

此项目根据宽松的MIT许可证发布。

你知道吗?我提供定制开发服务,并为发行版赞助和贡献发出发票。有关详情请联系我(@clue)。

更多信息

  • 如果您想了解更多关于处理数据流的信息,请参阅底层react/stream组件的文档。

  • 如果您想处理压缩的tarball(.tar.gz.tgz文件扩展名),您可能需要在将解压缩流传递到tar解码器之前在压缩输入流上使用clue/reactphp-zlib