PHPackages                             russsiq/laravel-zipper - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. russsiq/laravel-zipper

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

russsiq/laravel-zipper
======================

Класс-обертка для архиватора ZipArchive в Laravel 9.x.

0.3.0(4y ago)12.2k[1 issues](https://github.com/russsiq/laravel-zipper/issues)2MITPHPPHP 8.1.\*CI failing

Since Jun 16Pushed 4y ago2 watchersCompare

[ Source](https://github.com/russsiq/laravel-zipper)[ Packagist](https://packagist.org/packages/russsiq/laravel-zipper)[ Docs](https://github.com/russsiq/laravel-zipper)[ RSS](/packages/russsiq-laravel-zipper/feed)WikiDiscussions master Synced today

READMEChangelog (8)Dependencies (4)Versions (9)Used By (2)

Класс-обертка для архиватора ZipArchive в Laravel 9.x.
======================================================

[](#класс-обертка-для-архиватора-ziparchive-в-laravel-9x)

Подключение
-----------

[](#подключение)

Для добавления зависимости в проект на 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](#method-addDirectory)
- [addEmptyDirectory](#method-addEmptyDirectory)
- [addFile](#method-addFile)
- [addFromString](#method-addFromString)
- [close](#method-close)
- [create](#method-create)
- [deleteDirectory](#method-deleteDirectory)
- [deleteFile](#method-deleteFile)
- [extractTo](#method-extractTo)
- [filename](#method-filename)
- [open](#method-open)

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

[](#adddirectorystring-realpath-string-relativepath-bool)

Добавить в архив директорию.

##### `addEmptyDirectory(string $dirname): bool`

[](#addemptydirectorystring-dirname-bool)

Добавить в архив пустую директорию.

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

[](#addfilestring-filename-string-localname--null-bool)

Добавить в архив файл по указанному пути.

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

[](#addfromstringstring-localname-string-contents--bool)

Добавить в архив файл, используя содержимое строки.

##### `close(): bool`

[](#close-bool)

Закрыть текущий (открытый или созданный) архив и сохранить изменения.

##### `create(string $filename): self`

[](#createstring-filename-self)

Создать архив для последующей работы с ним (для чтения, записи или изменения).

##### `deleteDirectory(string $dirname): bool`

[](#deletedirectorystring-dirname-bool)

Удалить элемент (каталог) из архива, используя его имя.

##### `deleteFile(string $filename): bool`

[](#deletefilestring-filename-bool)

Удалить элемент (файл) из архива, используя его имя.

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

[](#extracttostring-destination-array-entries--null-bool)

Извлечь весь архив или его части в указанное место назначения.

##### `filename(): ?string`

[](#filename-string)

Получить полный путь, включая имя, текущего рабочего архива.

##### `open(string $filename): self`

[](#openstring-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](tests/testdox.html), используйте команду:

```
composer run-script testdox
```

Удаление пакета
---------------

[](#удаление-пакета)

Для удаления пакета из вашего проекта на Laravel используйте команду:

```
composer remove russsiq/laravel-zipper
```

Лицензия
--------

[](#лицензия)

`laravel-zipper` – программное обеспечение с открытым исходным кодом, распространяющееся по лицензии [MIT](LICENSE).

###  Health Score

25

—

LowBetter than 35% of packages

Maintenance0

Infrequent updates — may be unmaintained

Popularity17

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity60

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~96 days

Recently: every ~124 days

Total

8

Last Release

1579d ago

PHP version history (4 changes)0.0.1PHP &gt;=7.2.5

0.1.0PHP &gt;=7.3.0

0.2PHP ^7.3|^8.0

0.3.0PHP 8.1.\*

### Community

Maintainers

![](https://www.gravatar.com/avatar/128e56a6429fdc3f0bedabc7d9a353d68429d5219c33f87633e3ef21122d7b6e?d=identicon)[russsiq](/maintainers/russsiq)

---

Top Contributors

[![russsiq](https://avatars.githubusercontent.com/u/11920039?v=4)](https://github.com/russsiq "russsiq (25 commits)")

---

Tags

laravelzipperzip-archivezip-wrapper

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/russsiq-laravel-zipper/health.svg)

```
[![Health](https://phpackages.com/badges/russsiq-laravel-zipper/health.svg)](https://phpackages.com/packages/russsiq-laravel-zipper)
```

###  Alternatives

[laravel/ai

The official AI SDK for Laravel.

1.1k4.6M319](/packages/laravel-ai)[yajra/laravel-datatables-oracle

jQuery DataTables API for Laravel

4.9k36.9M384](/packages/yajra-laravel-datatables-oracle)[moonshine/moonshine

Laravel administration panel

1.3k268.2k89](/packages/moonshine-moonshine)[illuminate/session

The Illuminate Session package.

9939.9M888](/packages/illuminate-session)[erag/laravel-lang-sync-inertia

A powerful Laravel package for syncing and managing language translations across backend and Inertia.js (Vue/React/Svelte) frontends, offering effortless localization, auto-sync features, and smooth multi-language support for modern Laravel applications.

5031.3k](/packages/erag-laravel-lang-sync-inertia)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

265.2k](/packages/aedart-athenaeum)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
