Victor78 / yii2-zipper
Yii2-Zipper 是 Yii2 的存档组件。
Requires
- php: >=7.0
- victor78/zippy-ext: ~0.0.4
- yiisoft/yii2: *
This package is not auto-updated.
Last update: 2024-09-15 15:23:11 UTC
README
Yii2 框架的存档扩展 - zip, tar, tar.gz, tar.bz2, 7zip(支持密码的 zip 归档)。它是基于 ZippyExt 的壳。
在 Yii2 框架中提供存档扩展 - 支持zip, tar, tar.gz, tar.bz2, 7zip(仅支持密码的zip归档)。它是基于ZippyExt。
英文:
俄语:
安装
安装此扩展的首选方式是通过 composer。
运行以下命令
php composer.phar require --prefer-dist victor78/yii2-zipper:"~0.0.4"
或者
"victor78/yii2-zipper": "~0.0.4"
将以下内容添加到您的 composer.json 文件的 require 部分中。
配置
'type' 和 'password' 是可选的。
return [ //.... 'components' => [ 'zipper' => [ 'class' => 'Victor78\Zipper\Zipper', //required 'type' => '7zip', //or 'zip' (default), 'tar', 'tar.gz', 'tar.bz2' 'password' => 'password12345', //optional, only for 7zip type ], ] ];
如何使用
创建归档
//files to archive $files = [ '/path/to/file1', '/path/to/file2', ]; //to create tar archive $tarArchive = Yii::$app->zipper->create('/tmp/archive.tar', $files, true, 'tar'); //to create zip archive by 7zip with password $sevenZipArchive = Yii::$app->zipper->create('/tmp/archive.zip', $files, true, '7zip', 'password12345'); //or, if you've configured zipper component like in the example above: $sevenZipArchive = Yii::$app->zipper->create('/tmp/archive.zip', $files); $zipArchive = Yii::$app->zipper->create('/tmp/archive.zip', $files, true, 'zip');
打开归档并提取
$zipArchive = Yii::$app->zipper->open('/tmp/archive.zip', 'zip'); $tarArchive = Yii::$app->zipper->open('/tmp/archive.tar', 'tar'); $sevenZipArchive = Yii::$app->zipper->open('/tmp/archive.zip', '7zip'); //open 7zip with password $sevenZipArchiveEncrypted = Yii::$app->zipper->open('/tmp/archive.zip', '7zip', 'password12345'); $zipArchive->extract('/tmp/extracted/');
当您使用可选属性 'type' 和 'password' 配置 Zipper 组件时,它们将被用作 create 方法中的默认第四和第五参数,以及在 open 方法中的默认第二和第三参数。如果您在这些方法中明确指定了参数,它们将覆盖配置中的属性。您可以在配置中省略属性,并在方法中省略参数 - 在这种情况下,Zipper 将尝试自动确定要使用哪个适配器,但它不适用于使用 7zip 创建的 zip 归档。
这两个方法都返回 Archive 对象。您可以在 ZippyExt 库的文档中找到有关如何使用此对象和其他信息的详细信息。
需求
- 对于 zip 类型,Zipper 尝试使用 console 命令 zip 或 php zip 扩展,因此服务器上需要一个用于压缩的 zip。
- 对于 tar, tar.gz, tar.bz2,Zipper 尝试使用 GNU tar 或 BSD tar,因此服务器上需要一个用于这些存档方式的 tar。
- 对于使用 7zip 进行压缩,服务器上需要 7za 工具。
安装
首选的安装方式是通过 composer。
使用以下命令
php composer.phar require --prefer-dist victor78/yii2-zipper:"~0.0.4"
或者将以下内容添加到 composer.json 的 require 部分。
"victor78/yii2-zipper": "~0.0.4"
配置
'type' 和 'password' 是可选的。
return [ //.... 'components' => [ 'zipper' => [ 'class' => 'Victor78\Zipper\Zipper', //required 'type' => '7zip', //или: 'zip' (по умолчанию), 'tar', 'tar.gz', 'tar.bz2' 'password' => 'password12345', //опционально, работает только при типе 7zip ], ] ];
如何使用
创建归档
//files to archive $files = [ '/path/to/file1', '/path/to/file2', ]; //создать tar архив $tarArchive = Yii::$app->zipper->create('/tmp/archive.tar', $files, true, 'tar'); //создать zip архив с паролем при помощи 7zip $sevenZipArchive = Yii::$app->zipper->create('/tmp/archive.zip', $files, true, '7zip', 'password12345'); //или, если вы настроили компонент Zipper как в примере выше: $sevenZipArchive = Yii::$app->zipper->create('/tmp/archive.zip', $files); $zipArchive = Yii::$app->zipper->create('/tmp/archive.zip', $files, true, 'zip');
打开并解压缩归档
$zipArchive = Yii::$app->zipper->open('/tmp/archive.zip', 'zip'); $tarArchive = Yii::$app->zipper->open('/tmp/archive.tar', 'tar'); $sevenZipArchive = Yii::$app->zipper->open('/tmp/archive.zip', '7zip'); //открыть запароленный zip созданный при помощи 7zip $sevenZipArchiveEncrypted = Yii::$app->zipper->open('/tmp/archive.zip', '7zip', 'password12345'); $zipArchive->extract('/tmp/extracted/');
如果您为 Zipper 配置了可选属性 'type' 和 'password',它们将用作 create 方法中的默认第四和第五参数,以及 open 方法中的默认第二和第三参数。如果这些参数在方法中明确指定,则它们将覆盖配置中的属性。您可以在配置中省略属性,并在方法中省略参数 - 在这种情况下,Zipper 将尝试自动确定要使用哪个适配器,但它不适用于使用 7zip 创建的 zip 归档。
这两个方法都返回 Archive 对象。您可以在 ZippyExt 库的文档中找到有关如何使用此对象和其他信息的详细信息。
需求
- 对于纯 zip 归档,使用 zip 工具或 PHP zip 扩展,因此服务器上需要安装 zip 工具或扩展用于压缩和解压缩。
- 对于 tar, tar.gz, tar.bz2,Zipper 尝试使用 GNU tar 或 BSD tar,因此服务器上需要安装其中一个用于这些存档类型的 tar。
- 对于使用 7zip 进行压缩和解压缩,服务器上需要安装 7za 工具。