PHPackages                             mapsight/pulp-zip - 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. mapsight/pulp-zip

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

mapsight/pulp-zip
=================

ZIP helpers for Pulp packages.

00PHP

Since Jun 18Pushed todayCompare

[ Source](https://github.com/open-mapsight/pulp-zip)[ Packagist](https://packagist.org/packages/mapsight/pulp-zip)[ RSS](/packages/mapsight-pulp-zip/feed)WikiDiscussions main Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

Pulp ZIP
========

[](#pulp-zip)

ZIP helpers for Pulp packages and scripts.

Features
--------

[](#features)

- **Unzip in pipelines:** Expand ZIP payloads from a Pulp `File` into regular Pulp files.
- **Zip in pipelines:** Collect regular Pulp files into one ZIP archive.
- **Temporary file handling:** Uses temporary files internally because PHP `ZipArchive` works with paths.

Installation
------------

[](#installation)

```
composer require mapsight/pulp-zip
```

Requires PHP `ext-zip`.

Usage
-----

[](#usage)

Use `PulpZip::unzip()` after any source handler that emits ZIP bytes:

```
use OpenMapsight\Pulp;
use OpenMapsight\PulpZip;

Pulp::start()
    ->pipe(Pulp::srcHttp('GET', $url, [], 'data.zip'))
    ->pipe(PulpZip::unzip('.*\.csv'))
    ->pipe(Pulp::dest(__DIR__ . '/result'))
    ->run();
```

`unzip($patterns)` emits each matching archive entry as a normal Pulp `File`. Patterns use Pulp's regular-expression file matching, the same as `Pulp::fileSwitch()`.

Use `PulpZip::zip()` to collect incoming files into one archive:

```
Pulp::start()
    ->pipe(Pulp::src('.*\.json', __DIR__ . '/data'))
    ->pipe(PulpZip::zip('export.zip'))
    ->pipe(Pulp::dest(__DIR__ . '/result'))
    ->run();
```

Error Handling
--------------

[](#error-handling)

The handlers throw `RuntimeException` when:

- A temporary ZIP file cannot be created.
- The ZIP archive cannot be opened.
- A ZIP entry path is unsafe, for example an absolute path or a path containing `..`.
- A cache or temp file cannot be read or written by the caller.

Notes
-----

[](#notes)

- This package intentionally keeps the API small. It is not a full archive extraction library.
- For large ZIP files, prefer combining this package with `mapsight/pulp-cache` so downloads are cached before parsing.

###  Health Score

21

—

LowBetter than 18% of packages

Maintenance65

Regular maintenance activity

Popularity0

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity11

Early-stage or recently created project

 Bus Factor1

Top contributor holds 50% 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.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/684458?v=4)[Paul Golmann](/maintainers/pjeweb)[@pjeweb](https://github.com/pjeweb)

---

Top Contributors

[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (1 commits)")[![pjeweb](https://avatars.githubusercontent.com/u/684458?v=4)](https://github.com/pjeweb "pjeweb (1 commits)")

### Embed Badge

![Health badge](/badges/mapsight-pulp-zip/health.svg)

```
[![Health](https://phpackages.com/badges/mapsight-pulp-zip/health.svg)](https://phpackages.com/packages/mapsight-pulp-zip)
```

###  Alternatives

[astrotomic/php-open-graph

Easily generate Open Graph tags

6245.9k3](/packages/astrotomic-php-open-graph)[kanuni/filament-cards

519.7k](/packages/kanuni-filament-cards)

PHPackages © 2026

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