raulfraile/distill

智能压缩文件提取器

v0.9.10 2015-12-15 06:50 UTC

README

Build Status Latest Stable Version Total Downloads Latest Unstable Version

Distill可以从压缩归档中提取文件。

功能

  • arbz2cabchmcpiodebdmgepubgzpharrarshartartar.bz2tar.gztar.xzwim7zxzZzip归档中提取文件。
  • 底层支持不同的解压缩方法:PHP扩展、命令行二进制文件、第三方库以及纯PHP中的回退方法。
  • 如果存在多个可用格式,选择正确文件的策略。策略可以基于最小化带宽或优化解压缩速度。

安装

推荐通过Composer安装Distill。在您的composer.json文件中添加raulfraile/distill

Latest Stable Version Latest Unstable Version

{
    "require": {
        "raulfraile/distill": "@stable"
    }
}

提示:您应该浏览raulfraile/distill页面以选择要使用的稳定版本,避免使用@stable元约束。

否则,您需要自己安装库并设置自动加载器。

示例

use Distill\Distill;

$distill = new Distill();
$distill->extract(__DIR__ . '/../tests/files/file_ok.zip', __DIR__ . '/extract');

格式

策略

Distill允许在存在多个可用格式时选择一个格式。例如,对于想要通过选择具有更高压缩比且在客户端计算机上可用的压缩格式的安装程序,这可能非常有用,以减少带宽使用。

库提供三种策略(可以添加更多)

  • 最小大小(默认):选择具有更高压缩比的文件。
  • 解压缩速度:选择解压缩速度较快的文件。
  • 随机:获取系统可以解压缩的随机文件。
use Distill\Distill;

$distill = new Distill();

$preferredFile = $distill
    ->getChooser()
    ->setStrategy(new \Distill\Strategy\MinimumSize())
    ->addFile('http://get.symfony.com/Symfony_Standard_Vendors_2.5.3.zip')
    ->addFile('http://get.symfony.com/Symfony_Standard_Vendors_2.5.3.tgz')
    ->getPreferredFile();

echo $preferredFile; // http://get.symfony.com/Symfony_Standard_Vendors_2.5.3.tgz
use Distill\Distill;

$distill = new Distill();

$preferredFile = $distill
    ->getChooser()
    ->setStrategy(new \Distill\Strategy\UncompressionSpeed())
    ->addFile('test.phar')
    ->addFile('test.zip')
    ->getPreferredFile();

echo $preferredFile; // test.zip

命令行工具

如果您正在寻找提取压缩文件的命令行工具,请查看distill-cli,它使用此库

$ distill-cli extract archive.tar.gz path/

贡献

查看CONTRIBUTING文件。

运行测试

安装Composerdev依赖项

$ composer install --dev

然后,使用PHPUnit运行测试套件

$ phpunit

致谢

许可

Distill在MIT许可证下发布。有关详细信息,请参阅捆绑的LICENSE文件。