zorx/zipper

这是一个针对 ZipArchive 方法的简单助手,具有方便的功能

维护者

详细信息

github.com/zorx/Zipper

主页

源代码

安装: 1,333

依赖者: 1

建议者: 0

安全: 0

星星: 1

关注者: 3

分支: 269

0.6.3 2016-06-04 15:48 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:42:08 UTC


README

#Zipper

Build Status

这是一个围绕 ZipArchive 方法简单包装并包含一些方便功能的工具。

##安装

  1. 将此包添加到 composer.json 文件中所需包的列表中
  • 对于 Laravel 5: "chumper/zipper": "0.6.x"
  • 对于 Laravel 4: "chumper/zipper": "0.5.x"
  1. 运行 composer update

  2. 转到 app/config/app.php

  • 添加到 providers 'Chumper\Zipper\ZipperServiceProvider'
  • 添加到 aliases 'Zipper' => 'Chumper\Zipper\Zipper'

现在您可以使用 Zipper 别名访问 Zipper。

##简单示例

$files = glob('public/files/*');
Zipper::make('public/test.zip')->add($files);
  • 默认情况下,该包将在项目路由文件夹中创建 test.zip 文件,但在上面的示例中,我们将其更改为 project_route/public/

####另一个示例

$zipper = new \Chumper\Zipper\Zipper;

$zipper->make('test.zip')->folder('test')->add('composer.json');
$zipper->zip('test.zip')->folder('test')->add('composer.json','test');

$zipper->remove('composer.lock');

$zipper->folder('mySuperPackage')->add(
    array(
        'vendor',
        'composer.json'
    ),
);

$zipper->getFileContent('mySuperPackage/composer.json');

$zipper->make('test.zip')->extractTo('',array('mySuperPackage/composer.json'),Zipper::WHITELIST);

除了 getFileContentgetStatuscloseextractTo(这些必须放在链的末尾)之外,您可以轻松地链式调用大多数函数。

我编写这个小包的主要原因是 extractTo 方法,因为它允许在解压 zip 文件时非常灵活。例如,您可以实现一个更新方法,该方法将仅覆盖已更改的文件。

##函数

make($pathToFile)

创建打开 一个 zip 归档;如果文件不存在,它将创建一个新的文件。它将返回 Zipper 实例,以便您可以轻松地链式调用。

add($files/folder)

您可以为文件或文件夹添加一个数组,或者添加一个文件夹,其中的所有文件都将被添加,例如,从第一个示例中,我们也可以这样做 $files = 'public/files/';

addString($filename, $content)

通过指定名称和内容作为字符串将单个文件添加到 zip 中。

remove($file/s)

从 zip 中移除单个文件或文件数组。

folder($folder)

指定要 '添加文件到' 或 '从 zip 中移除文件' 的文件夹,例如

Zipper::make('test.zip')->folder('test')->add('composer.json');
Zipper::make('test.zip')->folder('test')->remove('composer.json');

home()

重置文件夹指针。

zip($fileName)

使用 ZipRepository 进行文件处理。

getFileContent($filePath)

获取 zip 中文件的内容。这将返回内容或 false。

getStatus()

获取 zip 的打开状态为整数。

close()

关闭 zip 并写入所有更改。

extractTo($path)

将 zip 归档的内容提取到指定位置,例如

Zipper::make('test.zip')->folder('test')->extractTo('foo');

这将在 zip 文件中的 test 文件夹中,并将该文件夹的内容仅提取到文件夹 foo 中,这相当于使用 Zipper::WHITELIST

此命令非常方便,可以仅获取 zip 文件的某部分,您还可以传递第二个和第三个参数以指定单个或文件数组,这些文件将被

列入白名单

Zipper::WHITELIST

Zipper::make('test.zip')->extractTo('public', array('vendor'), Zipper::WHITELIST);

这将把 test.zip 提取到 public 文件夹中,但 提取 zip 文件中的 vendor 文件夹。

或列入黑名单

Zipper::BLACKLIST

Zipper::make('test.zip')->extractTo('public', array('vendor'), Zipper::BLACKLIST);

这将把 test.zip 提取到 public 文件夹中,但 zip 文件中的 vendor 文件夹将不会被提取。

##开发

可能添加其他压缩函数,如 rar、phar 或 bzip2 等等是个好主意。一切都已经设置好了,如果您只想进行进一步的开发,请进行分支并开发。

如果您需要其他功能或遇到错误,请将问题留到 github 上。