- What does kphoen/gaufrette-extras-bundle actually do?
- It is a Symfony bundle that adds extra wiring around Gaufrette, the PHP filesystem abstraction library, and complements KnpGaufretteBundle. It registers additional filesystem services and configuration in Symfony's dependency injection container. It is not a Laravel package and does not provide a Laravel service provider, facade, or config schema.
- Can I use kphoen/gaufrette-extras-bundle in a Laravel application?
- No. The package is a Symfony2 Bundle with a DependencyInjection extension and YAML or XML service definitions, while Laravel has no bundle lifecycle and uses Flysystem-backed Illuminate\Contracts\Filesystem\Filesystem disks. Making it work would mean bootstrapping Symfony's DI container inside Laravel, which is architecturally backwards. There is no supported integration path.
- Does this package support Laravel 10, 11, or 12 and PHP 8.1+?
- There is no supported Laravel version, and modern Laravel releases require PHP 8.1+ with Symfony 6 or 7 components. This package targets EOL Symfony2 and the deprecated kphoen/gaufrette-extras library, so Composer will almost certainly refuse to resolve it. Treat it as incompatible with current Laravel stacks.
- How do you install and configure kphoen/gaufrette-extras-bundle?
- In a legacy Symfony2 application you would install it with Composer alongside KnpGaufretteBundle, register the bundle in the kernel, and configure filesystem services through Symfony's container. That installation and configuration model does not exist in Laravel. Do not force it with --ignore-platform-reqs, because that reintroduces end-of-life Symfony components.
- Is kphoen/gaufrette-extras-bundle still maintained?
- No. It is explicitly deprecated and has no security patches, PHP 8.x work, bug triage, or release cadence, and the underlying kphoen/gaufrette-extras library is also unmaintained. It has essentially no adoption signal, so there is no community to surface regressions or publish CVE guidance. Use it as a reference implementation rather than a dependency.
- Is it safe to run this bundle in production or under Laravel Octane?
- No. The package depends on EOL Symfony2 and deprecated Gaufrette code, so it receives no security fixes and will likely trigger Composer audit or Dependabot warnings. Even if forced to install, its legacy Symfony DI services were not designed for Laravel's container boot or Octane's long-lived workers. Production risk is high across maintenance, supply chain, and runtime compatibility.
- Why does Composer fail when I try to require this package in Laravel?
- Composer will usually conflict on symfony/*, php, and possibly gaufrette/core because the package is built for Symfony2-era dependencies. Forcing resolution with --ignore-platform-reqs only hides the problem and pulls EOL components into a modern stack. That is a supply-chain and audit risk rather than a fix.
- What should Laravel developers use instead of Gaufrette Extras?
- Use Laravel's native Storage disks, which are backed by Flysystem through Illuminate\Contracts\Filesystem\Filesystem. Configure disks in config/filesystems.php and resolve public URLs with Storage::disk()->url() or the driver's native URL support. For adapters Flysystem does not cover, scope a thin custom Flysystem adapter rather than a Gaufrette bridge.
- How do I migrate from Gaufrette filesystems to Laravel Flysystem disks?
- Inventory the Gaufrette adapters in use, map each one to an equivalent Flysystem adapter, and register them as disks in config/filesystems.php. Replace Gaufrette filesystem calls with Laravel Storage calls and use a small resolver service where you need public URL resolution. You can reimplement the decorator pattern this bundle demonstrates without carrying the Symfony dependency.
- How should I test Laravel file storage if I was considering this bundle?
- Testing is not the main blocker because the package will not install cleanly or integrate with Laravel in the first place. For testable storage, use Laravel's Storage::fake() with native disks and inject the filesystem contract into your services. Avoid bootstrapping Symfony DI in Laravel tests, since that adds legacy complexity without exercising production behavior.