laravel-zipper maintained by russsiq
Класс-обертка для архиватора ZipArchive в Laravel 9.x.
Подключение
Для добавления зависимости в проект на Laravel, используйте менеджер пакетов Composer:
composer require russsiq/laravel-zipper
Если в вашем приложении включен отказ от обнаружения пакетов в директиве dont-discover в разделе extra файла composer.json, то необходимо самостоятельно добавить следующее в файле config/app.php:
- Провайдер услуг в раздел
providers:
Russsiq\Zipper\ZipperServiceProvider::class,
- Псевдоним класса (Facade) в раздел
aliases:
'Zipper' => Russsiq\Zipper\Facades\Zipper::class,
Использование
Методы
Все публичные методы доступны через фасад Zipper:
Zipper::someMethod(example $someParam);
Список доступных публичных методов класса-обертки Zipper:
- 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
Для запуска тестов и формирования agile-документации, генерируемой в HTML-формате и записываемой в файл tests/testdox.html, используйте команду:
composer run-script testdox
Удаление пакета
Для удаления пакета из вашего проекта на Laravel используйте команду:
composer remove russsiq/laravel-zipper
Лицензия
laravel-zipper – программное обеспечение с открытым исходным кодом, распространяющееся по лицензии MIT.