hedii/zipper

此包已废弃,不再维护。未建议替代包。

这是一个为 ZipArchive 方法提供便捷功能的简单助手。

维护者

详细信息

github.com/hedii/Zipper

此包尚未发布版本,且信息有限。


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

  • 添加提供者 'Chumper\Zipper\ZipperServiceProvider'
  • 添加别名 '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 中或从 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.zippublic 文件夹,但压缩包内 vendor 文件夹将不会提取。

## 开发

可能添加其他压缩功能(如 rar、phar 或 bzip2 等)是个不错的想法。所有设置都已就绪,如果您想继续开发,只需进行分支即可。

如果您需要其他功能或遇到错误,请在 github 上提交一个 issue。