- What is aerni/zipper used for in a Laravel application?
- It is a single-purpose Statamic addon for creating and streaming ZIP archives of Statamic assets on the fly using a simple fluent API. It lets you add files or directories and generate a download without working directly with PHP's ZipArchive class. It is not a general Laravel archiving utility and offers little value outside a Statamic application.
- How do I install aerni/zipper in a Laravel and Statamic app?
- Install it with composer require aerni/zipper; Statamic package auto-discovery should register the service provider. You can optionally publish its config, then wire a template tag or route to trigger the archive. Expect a working spike in hours, not days.
- Does aerni/zipper work with plain Laravel without Statamic?
- No. The package is a Statamic addon that resolves Statamic assets and containers, so it depends on Statamic being installed. For a non-Statamic Laravel app, use PHP's ZipArchive or a generic streaming ZIP library instead.
- Which Statamic, Laravel, and PHP versions are supported by aerni/zipper?
- The provided context does not confirm a supported matrix; verify the Composer constraints for statamic/cms, laravel/framework, and PHP before adopting it. Test against your target majors, such as Statamic 4/5, Laravel 10/11/12, and PHP 8.1-8.4 if those are your platforms. Pin an exact version and let Composer's platform requirements fail the build on incompatible upgrades.
- Is aerni/zipper safe for a public asset download endpoint?
- The security posture is the key unknown; any route that assembles assets from user-supplied IDs needs review. Verify authorization against container and folder permissions, signed or expiring URLs, private-container behavior, path traversal protection, and unlisted-asset enumeration. Add auth middleware and rate limiting before production.
- Does aerni/zipper stream ZIP downloads or write a temporary file?
- This is not confirmed in the provided context. Verify whether it uses true streaming with constant memory, such as a ZipStream-style approach, or builds a temp file on disk, which introduces disk exhaustion and cleanup risk. Load test at your p95 archive size before committing.
- Can aerni/zipper include assets from S3 or other remote Statamic containers?
- It should work through Statamic's asset container abstraction, but verify remote-driver parity in staging because local disk is the happy path. For private S3 assets, every byte is proxied through PHP, which is correct for access control but adds latency and egress. Confirm behavior for nested folders, duplicate filenames across containers, and non-local drivers.
- How should I test aerni/zipper before production rollout?
- Start with a dev spike using a representative asset set, then review the route's authentication, signed URLs, rate limiting, and private-container behavior. Load test at your expected p95 archive size and verify S3/remote-driver parity in staging. Roll out behind a feature flag, keep existing per-asset download links live, and measure usage before removing anything.
- Is aerni/zipper actively maintained and production-ready?
- Treat vendor risk as the dominant risk: the context cites one star, zero dependents, and a single maintainer, so it is effectively unproven. The stated last release date looks like a metadata artifact; confirm real release cadence, issue responsiveness, and Composer constraints. The functional surface is small, so forking or reimplementing in-house is plausibly a one-to-two-day bounded risk.
- What are alternatives to aerni/zipper for zipping Statamic assets?
- You can implement a small Statamic route or controller that resolves assets and streams them with a generic ZIP library such as ZipStream-PHP, preserving your own authorization checks. Forking aerni/zipper is also cheap given its small surface. For non-Statamic Laravel apps, use PHP's ZipArchive or another Laravel archiving package.