- Can I use cleverage/archive-process-bundle in a Laravel application?
- No, not as a drop-in Composer dependency. The package is a Symfony bundle: it relies on bundle registration in config/bundles.php, a Symfony DI extension, and the task contracts defined by CleverAge/ProcessBundle, none of which exist in a Laravel runtime. To use the same idea in Laravel you would need to reimplement the ZipTask and UnzipTask logic inside a queued job using PHP's native ZipArchive. For a Laravel-first stack, treat this repository as reference material rather than something you install.
- What does cleverage/archive-process-bundle actually do?
- It adds archive integration to CleverAge/ProcessBundle by shipping two tasks: ZipTask, which packages artifacts into a ZIP file, and UnzipTask, which extracts an inbound archive for downstream processing. It also provides a dependency injection extension to register the services inside a Symfony application. It is a file-packaging step library, not a storage layer or an archive-entity system. There are no retention policies, versioning rules, or pluggable storage adapters.
- What are the requirements for installing cleverage/archive-process-bundle?
- You need PHP 8.1 or newer, the ext-zip extension with ZipArchive available, and an existing CleverAge/ProcessBundle setup to attach the tasks to. The ZipArchive dependency is hard, not optional: recent fixes in the 2.2 line deal specifically with ZipArchive open and write failure paths. Install it with Composer and register the bundle in config/bundles.php, then wire the tasks into your existing process definitions.
- Which Symfony versions does this bundle support?
- The README states compatibility with the current Symfony stable release and the latest Long-Term Support release. There is no Laravel or framework-agnostic support of any kind, since the package is built around Symfony bundle and DI conventions. If your application runs an older, unsupported Symfony branch, verify compatibility against the composer.json constraints before planning adoption.
- How do I add a ZIP step to an existing ProcessBundle workflow?
- You register the bundle, then reference ZipTask or UnzipTask as a step inside your existing ProcessBundle process definition, passing input as an array of file paths. Options such as files_base_path control how entry paths inside the archive are named, and options are resolved per execution so each input can use its own settings. No migration step is implied by the release notes, though it is worth confirming against the source before promising zero migrations.
- What changed in version 2.2 that could break existing workflows?
- Version 2.2 is not a pure bugfix release. ZipTask and UnzipTask now throw RuntimeException when an archive cannot be written or extracted instead of silently returning a path, non-array input throws UnexpectedValueException instead of emitting a warning, and files_base_path now strips only the leading occurrence rather than every occurrence. Options are also resolved per execution, so each input uses its own options instead of inheriting the first input's settings. Workflows that previously reported success while producing a broken archive will now fail, and archives produced before 2.2 with differing per-input options may have incorrect entry names or settings.
- Does this bundle create database tables or archive entities?
- No. The released surface is limited to ZipTask, UnzipTask, and a DI extension, with no Doctrine entities or storage configuration such as filesystem versus doctrine backends. There is no ArchiveEntry concept and no immutable-archive semantics. If you need searchable archive metadata or a retention engine, that remains application-level work you would build yourself.
- Is cleverage/archive-process-bundle tested and actively maintained?
- Test coverage improved substantially with the addition of tests for options precedence and validation, missing and unreadable files, overwriting, ZipArchive open failures, and the bundle plus DI extension. Six issues were closed in a single release, each with accompanying documentation updates and tests, which is a stronger maturity signal than the low star count suggests. The main remaining concern is bus factor, since the project has a small maintainer base and few dependents. It is MIT licensed, so forking is a viable fallback.
- Can this bundle handle retention policies or cold-storage tiering for archives?
- No. It only creates and extracts ZIP files as a step in a processing workflow; it has no concept of retention windows, versioning, or storage tiering. If your requirement is a retention and versioning engine, searchable archive metadata, or adapters for object storage, this bundle is not that product. Those needs stay in your application layer or in a dedicated backup and lifecycle tool.
- What should Laravel developers use instead for archiving and archiving workflows?
- Use PHP's native ZipArchive directly, or a Flysystem ZIP adapter if you already abstract storage through league/flysystem. ZipStream-PHP is a good fit when you need to stream large archives to a response without writing a temp file. For retention and scheduled backups rather than packaging, look at spatie/laravel-backup, which covers lifecycle concerns this Symfony bundle deliberately does not.