Weave 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

Gaufrette Extras Bundle Laravel Package

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.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

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:

  • Explicitly [DEPRECATED] — no security patches, no PHP 8.x work, no bug triage, no release cadence.
  • Symfony2 is EOL (2.8 ended support in 2018). Modern Laravel (10/11/12) requires PHP 8.1+ and Symfony 6/7 components; Composer will almost certainly refuse to resolve.
  • Zero adoption signal — 3 stars, 0 dependents, score 0.045. No community to surface regressions or publish CVE guidance.
  • Supply-chain exposure — any workaround (--ignore-platform-reqs) reintroduces EOL Symfony components into an otherwise modern stack, which composer audit / Dependabot will flag.

Key questions for the requesting team.

  1. What is the actual requirement — a specific storage adapter (S3, GridFS, Dropbox, FTP), or a resolvable public-URL capability? Almost certainly the latter, and both are already solved by Flysystem adapters plus Storage::disk()->url().
  2. Is there an existing Symfony2 codebase this is meant to interoperate with, or is the intent to use it inside Laravel? If the latter, this is the wrong package by construction.
  3. Which PHP and Laravel versions are in scope? Anything ≥ PHP 8.1 makes the install a non-starter.
  4. Is there an adapter Flysystem does not cover? If so, scope a thin custom Flysystem adapter — not a Gaufrette bridge.

Integration Approach

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).

  1. Week 0 — Requirement clarification: confirm the actual adapters needed and whether Flysystem covers them.
  2. If covered (expected): close the ticket; document the Flysystem disk configuration as the answer. Zero code.
  3. If a genuine gap exists: scope a ~1-day custom Flysystem adapter against the vendor SDK, wrapped in a Laravel service provider and registered as a disk.
  4. Do not sequence a Gaufrette Extras spike unless a stakeholder explicitly funds a legacy-Symfony assessment — and even then, cap it at a half-day PoC to confirm the conflict, then stop.

Operational Impact

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.

  • Install-time failure (most likely): Composer cannot resolve symfony/http-kernel ^2.x against a Laravel 10/11/12 app. Surfaces as a build break — cheap to detect, embarrassing to have scoped.
  • Boot-time failure: legacy DI extension registers services Laravel never instantiates; silent misconfiguration of storage paths.
  • Security exposure: EOL Symfony 2 components with known CVEs enter the dependency tree, blocking CI via composer audit.
  • Silent data-path divergence: two filesystem abstractions writing to the same bucket with different path semantics.
  • Fork rot: if the team patches it, the fork drifts from a dead upstream with no rebase source.

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.

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.
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log