hedii / zipper
这是一个为 ZipArchive 方法提供便捷功能的简单助手。
此包尚未发布版本,且信息有限。
README
#Zipper
这是一个简单包装 ZipArchive 方法的助手,包含一些便捷功能。
##安装
- 将此包添加到
composer.json
中所需包的列表
- 对于 Laravel 5:
"chumper/zipper": "0.6.x"
- 对于 Laravel 4:
"chumper/zipper": "0.5.x"
-
运行
composer update
-
转到
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);
您可以将大多数函数串联起来,除了 getFileContent
、getStatus
、close
和 extractTo
,这些必须在链的末尾。
我编写这个小型包的主要原因是 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.zip
到 public
文件夹,但压缩包内 vendor
文件夹将不会提取。
## 开发
可能添加其他压缩功能(如 rar、phar 或 bzip2 等)是个不错的想法。所有设置都已就绪,如果您想继续开发,只需进行分支即可。
如果您需要其他功能或遇到错误,请在 github 上提交一个 issue。