kphoen/gaufrette-extras-bundle
A Symfony bundle that adds extra functionality and integrations on top of Gaufrette, the PHP filesystem abstraction library. It wires additional filesystem adapters, services, and configuration into Symfony apps, complementing KnpGaufretteBundle for flexible, framework-native file storage handling.
Architecture fit. Poor for Laravel, and the mismatch is structural rather than cosmetic. The package is a Symfony2 bundle: a Bundle subclass, a DependencyInjection extension, and YAML/XML service definitions that register kphoen/gaufrette-extras services into Symfony's container. Laravel has no bundle lifecycle, no DI extension convention, and its filesystem contract is Illuminate\Contracts\Filesystem\Filesystem over Flysystem. Gaufrette is a competing abstraction, not an extension of Laravel's. Consuming the bundle would mean bootstrapping Symfony's DI component inside a Laravel app — architecturally backwards and with no upside over native Storage disks.
Integration feasibility. Low. There is no Laravel service provider, facade, or published config schema. The only reusable artifact is the container-wiring pattern, which is roughly a service provider's worth of code that would be rewritten anyway. More importantly, the underlying kphoen/gaufrette-extras library is itself unmaintained, so even a hand-rolled Laravel bridge would be standing on an EOL foundation. As a TPM, treat this as "reference implementation, not dependency."
Technical risk. High across every axis:
[DEPRECATED] — no security patches, no PHP 8.x work, no bug triage, no release cadence.--ignore-platform-reqs) reintroduces EOL Symfony components into an otherwise modern stack, which composer audit / Dependabot will flag.Key questions for the requesting team.
Storage::disk()->url().Stack fit. Mismatch. Laravel's disk abstraction is Flysystem-backed; Gaufrette is parallel. There is no supported integration path, and the recommended posture is to take the pattern (a ResolvableFilesystem decorator that adds URL resolution and read caching around a filesystem interface) and reimplement it against Storage in a service provider.
Migration path. Not forward-compatible. The only legitimate migration is off this package: inventory the Gaufrette adapters in use, map each to a Flysystem adapter, and register them as disks in config/filesystems.php. For the "resolve a path to a public URL" need, either use the driver's native url() or wrap it in a small resolver service — the decorator pattern this bundle demonstrates, minus the dependency.
Compatibility. Functionally incompatible with modern Laravel. Expect Composer conflicts on symfony/*, php, and possibly gaufrette/core. If it ever installs, it still has to survive Laravel's container boot and Octane's long-lived workers — legacy Symfony2 DI services were never designed for that.
Sequencing (recommended).
Maintenance. Effectively zero upstream. A deprecated 3-star package with 0 dependents has no roadmap, no issue triage, and no release cadence. Any maintenance burden lands entirely on the adopting team, and that burden is forking and owning the package — including its EOL Symfony2 transitive dependencies.
Support. None. No vendor, no active maintainers, no community forum, no Stack Overflow footprint of note. A production incident traced to this bundle would be resolved only by patching a fork, with no upstream rebase source.
Scaling. Neutral to negative. Gaufrette's abstraction does not improve throughput, and the bundle adds container/wiring overhead with no Laravel-side benefit. Flysystem adapters are the scaling-relevant choice: maintained alongside Laravel, Octane-safe, and supporting Storage::disk() streaming, putFile, and CDN URL generation out of the box.
Failure modes.
symfony/http-kernel ^2.x against a Laravel 10/11/12 app. Surfaces as a build break — cheap to detect, embarrassing to have scoped.composer audit.Ramp-up. Deceptively high. A Laravel engineer would need Symfony2 DI and config-tree conventions to even read the bundle — knowledge with no transfer value in a Laravel shop. Rough estimate: 2–3 days to reach "can evaluate," for a package the team should almost certainly not adopt. Expected value of that ramp-up is negative; redirect it to Flysystem adapter research instead.
TPM recommendation. Reject as a dependency. Leverage it only as a design reference — the decorator pattern for URL resolution and read caching is the one useful artifact — and deliver the underlying capability with Laravel's native Flysystem disks or a small custom Flysystem adapter. Score 0.045 reflects reality: deprecated, unmaintained, framework-mismatched, and zero adoption. No budget, no roadmap dependency, no spike required.
How can I help you explore Laravel packages today?