Victor78/yii2-zipper

Yii2-Zipper 是 Yii2 的存档组件。

安装: 21,197

依赖者: 1

建议者: 0

安全: 0

星标: 1

关注者: 1

分支: 2

开放问题: 2

类型:yii2-extension

0.0.4 2018-05-01 19:46 UTC

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 工具。