raulfraile / distill
智能压缩文件提取器
v0.9.10
2015-12-15 06:50 UTC
Requires
- php: >=5.4.0
- pimple/pimple: ~3.0
- symfony/filesystem: ~2.4|^3.0
- symfony/process: ~2.4|^3.0
Requires (Dev)
- mockery/mockery: 0.9.1
- raulfraile/ladybug: ~1.0
- symfony/finder: ~2.4|^3.0
Suggests
- ext-rar: Allows to uncompress rar files using RarArchive
- ext-zip: Allows to uncompress zip files using ZipArchive
This package is not auto-updated.
Last update: 2024-09-14 16:13:32 UTC
README
Distill可以从压缩归档中提取文件。
功能
- 从
ar
、bz2
、cab
、chm
、cpio
、deb
、dmg
、epub
、gz
、phar
、rar
、shar
、tar
、tar.bz2
、tar.gz
、tar.xz
、wim
、7z
、xz
、Z
和zip
归档中提取文件。 - 底层支持不同的解压缩方法:PHP扩展、命令行二进制文件、第三方库以及纯PHP中的回退方法。
- 如果存在多个可用格式,选择正确文件的策略。策略可以基于最小化带宽或优化解压缩速度。
安装
推荐通过Composer安装Distill。在您的composer.json
文件中添加raulfraile/distill
包
{ "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文件。
运行测试
安装Composer的dev
依赖项
$ composer install --dev
然后,使用PHPUnit运行测试套件
$ phpunit
致谢
- Raul Fraile (@raulfraile)
- 所有贡献者
许可
Distill在MIT许可证下发布。有关详细信息,请参阅捆绑的LICENSE文件。