russsiq / laravel-zipper
Laravel 9.x 中 ZipArchive 压缩器的类封装。
0.3.0
2022-04-22 00:37 UTC
Requires
- php: 8.1.*
- ext-zip: *
- illuminate/filesystem: 9.*
- illuminate/support: 9.*
Requires (Dev)
- mockery/mockery: ^1.5.0
- phpunit/phpunit: ^9.5.20
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
- addEmptyDirectory
- addFile
- addFromString
- close
- create
- deleteDirectory
- deleteFile
- extractTo
- filename
- open
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 许可证分发。