A PHP library providing a filesystem abstraction layer to decouple file storage from application logic.
Gaufrette is a PHP library that provides a filesystem abstraction layer, allowing developers to manage files without being tied to specific storage backends. It enables applications to switch between different storage solutions seamlessly, such as moving from local storage to cloud services like Amazon S3, by abstracting storage details behind a consistent interface.
PHP developers building applications that require flexible file storage management, particularly those working with Symfony or needing to support multiple storage backends like cloud services, FTP, or local filesystems.
Developers choose Gaufrette for its storage agnosticism, allowing them to write file operations once and switch backends without code changes, and for its extensive adapter support with metapackages that simplify dependency management.
PHP library that provides a filesystem abstraction layer − will be a feast for your files!
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports a wide range of storage backends including Amazon S3, Azure Blob Storage, Google Cloud Storage, FTP, and SFTP, as listed in the README's maintainer table, enabling seamless backend switching.
Has an official Symfony bundle (KnpGaufretteBundle) for easy integration into Symfony applications, simplifying configuration and usage.
Includes in-memory and local adapters that allow for unit testing file operations without relying on actual storage systems, as highlighted in the key features.
Each adapter is available as a separate Composer package with its own dependencies, reducing bloat and simplifying dependency management, as recommended in the README.
The README explicitly states there is no stable release yet, which introduces potential risks of breaking changes or instability in production environments.
Setting up for development requires Docker, docker-compose, and multiple make commands, as detailed in the README, which can be a barrier for quick contributions or local testing.
Official documentation is external (linked in the README), which might be less accessible or updated compared to integrated in-code documentation, requiring extra effort.