Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Flysystem Ziparchive Laravel Package

league/flysystem-ziparchive

Flysystem ZipArchive adapter sub-split. Use it to work with ZIP files via Flysystem’s filesystem abstraction. This repo is read-only for packaging; file issues and pull requests on the main Flysystem project: https://github.com/thephpleague/flysystem

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Unified File Storage & Archiving: Enables a consistent API for handling both local files and ZIP archives, simplifying backend logic for applications requiring dynamic file compression (e.g., document generation, backups, or media processing).
  • Roadmap for Scalable Media Workflows: Supports future expansion into multi-format archiving (e.g., TAR, RAR) by leveraging Flysystem’s adapter ecosystem, reducing technical debt.
  • Build vs. Buy: Avoids reinventing ZIP handling logic, reducing development time and maintenance overhead. Ideal for projects where core focus isn’t file compression but leveraging archiving as a feature.
  • Use Cases:
    • User-Generated Content: Compress uploads (e.g., portfolios, datasets) into ZIPs for storage or delivery.
    • Automated Backups: Package application data (logs, configs) into ZIPs for cloud storage or CDN distribution.
    • Dynamic Reports: Generate ZIPs of CSV/PDF reports on-the-fly for enterprise users.
    • Plugin/Extension Systems: Distribute modular components as ZIPs (e.g., themes, templates) with metadata.

When to Consider This Package

  • Adopt When:

    • Your PHP stack already uses Laravel/Flysystem for file storage (e.g., local, S3, Dropbox).
    • You need ZIP archive support without deep integration with Symfony’s ZipStream or custom solutions.
    • Your use case requires read/write operations (not just creation) on ZIP files via a familiar Flysystem API.
    • You prioritize maintainability over performance-critical compression (e.g., high-throughput batch processing).
  • Look Elsewhere If:

    • You need advanced compression algorithms (e.g., AES encryption, multi-volume splits) → Use ZipStream or pclzip.
    • Your project is JavaScript/Node.js-heavy → Consider adm-zip or archiver.
    • You require serverless-friendly ZIP handling (e.g., AWS Lambda) → Evaluate AWS SDK or custom solutions.
    • Performance is critical (e.g., real-time video encoding) → Benchmark against native ZipArchive or libzip bindings.

How to Pitch It (Stakeholders)

For Executives:

"This package lets us treat ZIP archives like any other storage system—just like S3 or local files—using the same code. For example, we can automatically package user uploads into ZIPs for secure delivery, or generate compressed reports without adding a full-time dev to the project. It’s a 2-week integration that unlocks features like ‘download all my files as one ZIP’ or ‘backup this dataset to cloud storage,’ reducing support costs and improving user experience. The MIT license means no hidden costs, and it’s battle-tested by the League of Extraordinary Packages."

For Engineering:

*"This is a Flysystem adapter for PHP’s built-in ZipArchive, so it plugs into our existing file storage layer seamlessly. Key benefits:

  • Consistency: Use Storage::disk('zip_archive')->put() just like Storage::disk('s3')->put().
  • Flexibility: Supports all Flysystem features (streaming, metadata, ACLs) on ZIP files.
  • Low Risk: MIT-licensed, actively maintained (via Flysystem), and zero dependents mean it’s stable but not locked into our stack. Tradeoff: It uses ZipArchive (not a streaming solution), so avoid for huge files (>100MB) or encryption-heavy workflows. For those, we’d need to scope separately."*

For Developers:

*"Imagine writing this:

$zip = Storage::disk('zip_archive')->create('report.zip');
$zip->put('data/report.csv', $csvData);
$zip->put('data/image.png', file_get_contents('image.png'));

No more manual ZipArchive calls or error-prone string concatenation. The adapter handles paths, permissions, and even streaming reads/writes. Perfect for:

  • Laravel Nova/Vue/React apps needing file bundles.
  • CLI tools that generate compressed outputs.
  • Legacy systems where ZIPs are a requirement but the codebase is Flysystem-agnostic."*
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
terminal42/code-quality-tools
codifyo/ts-generator-bundle
andydefer/laravel-cluster
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky