russsiq/laravel-zipper

Laravel 9.x 中 ZipArchive 压缩器的类封装。

0.3.0 2022-04-22 00:37 UTC

This package is auto-updated.

Last update: 2024-09-22 05:51:55 UTC


README

连接

要在 Laravel 项目中添加依赖,请使用包管理器 Composer

composer require russsiq/laravel-zipper

如果您的应用程序在 composer.json 文件的 extra 部分的 dont-discover 指令中启用了包的发现,则需要在 config/app.php 文件中手动添加以下内容

  • 服务提供商到 providers 部分
Russsiq\Zipper\ZipperServiceProvider::class,
  • 类别名(外观)到 aliases 部分
'Zipper' => Russsiq\Zipper\Facades\Zipper::class,

使用

方法

所有公共方法都通过 Zipper 外观访问

Zipper::someMethod(example $someParam);

可用的公共方法列表

addDirectory(string $realPath, string $relativePath): bool

将目录添加到归档中。

addEmptyDirectory(string $dirname): bool

将空目录添加到归档中。

addFile(string $filename, string $localname = null): bool

按指定路径将文件添加到归档中。

addFromString(string $localname, string $contents) : bool

使用字符串内容将文件添加到归档中。

close(): bool

关闭当前(打开或创建的)归档并保存更改。

create(string $filename): self

创建归档以供后续使用(用于读取、写入或修改)。

deleteDirectory(string $dirname): bool

使用名称从归档中删除元素(目录)。

deleteFile(string $filename): bool

使用名称从归档中删除元素(文件)。

extractTo(string $destination, array $entries = null): bool

将整个归档或其部分提取到指定位置。

filename(): ?string

获取当前工作归档的完整路径,包括名称。

open(string $filename): self

打开归档以供后续使用(用于读取、写入或修改)。

使用示例

要初始化 Zipper 类封装,您可以使用同名外观 Zipper 的两种方法之一

use Russsiq\Zipper\Facades\Zipper;

// Полный путь к создаваемому архиву.
$filename = \storage_path('/tmp/new-ziparchive.zip');

// Класс-обертка выбросит исключение,
// при попытки перезаписи существующего файла.
if (!\file_exists($filename)) {
    // Создание нового архива в формате `*.zip`.
    $zipper = Zipper::create($filename);

    // Добавление нового файла в архив из содержимого строки.
    $zipper->addFromString('new-file.txt', 'dummy contents');

    // Закрытие архива для принятия внесенных изменений.
    $zipper->close();
}
use Russsiq\Zipper\Facades\Zipper;

// Полный путь к открываемому архиву.
$filename = \storage_path('/tmp/exists-ziparchive.zip');

// Полный путь назначения для извлечения содержимого архива.
$destination = \storage_path('/tmp/extracted');

// Класс-обертка выбросит исключение,
// при попытки открытия несуществующего файла архива.
if (\file_exists($filename)) {
    // Открытие существующего архива в формате `*.zip`.
    $zipper = Zipper::open($filename);

    // Извлечение всего содержимого из файла архива.
    $zipper->extractTo($destination);

    // Закрытие архива для принятия внесенных изменений.
    $zipper->close();
}

测试

要运行测试,请使用以下命令

composer run-script test

要运行测试并生成 HTML 格式的 agile 文档(保存为 tests/testdox.html),请使用以下命令

composer run-script testdox

删除包

要从您的 Laravel 项目中删除包,请使用以下命令

composer remove russsiq/laravel-zipper

许可证

laravel-zipper 是开源软件,按照 MIT 许可证分发。