- Is arxy/files a Laravel package?
- No. arxy/files is a Symfony bundle built around Doctrine ORM, not a Laravel package. It ships Symfony dependency-injection configuration, a Twig extension, a form type, and serializer or LiipImagine normalizers, so a Laravel app cannot install and use it as a native package.
- Can I use arxy/files with Laravel Eloquent?
- Not directly. There is no Eloquent repository or query-builder persistence layer, and Doctrine's postPersist and preRemove lifecycle semantics do not map cleanly to Eloquent model events. You could reuse ideas from FlysystemStorage and the naming strategies, but the Manager, repository, and lifecycle hooks would need to be reimplemented for Eloquent, so treat it as a reference architecture rather than a dependency.
- How does arxy/files handle file uploads and deletion automatically?
- On Doctrine entity persist, files are staged and only moved to their final location when the entity is flushed; on entity remove, preRemove deletes the stored file. This is driven by Doctrine event listeners and the unit of work, not by generic model events. Laravel Eloquent has no equivalent event contract, so the automatic lifecycle behavior does not transfer unchanged.
- What Laravel version support does arxy/files offer?
- There is no official Laravel version support because this is not a Laravel package. It targets Symfony and Doctrine ORM, so any Laravel support would be a custom ServiceProvider and integration layer you build and maintain. Check its Composer constraints for supported PHP, Symfony, Doctrine, and Flysystem versions before attempting that.
- How does MD5 deduplication work in arxy/files?
- arxy/files computes an MD5 checksum for uploaded content and reuses an existing file record when the same hash is found, which saves storage space. The trade-off is shared-blob semantics: the bundle does not expose visible reference counting, and preRemove deletes the stored object when an entity is removed. Two entities that share a hash can therefore interfere with each other, and cross-tenant deduplication raises data-isolation and hash-disclosure concerns. MD5 is acceptable as a content fingerprint here, but it is not a security control.
- Can I disable deduplication or use UUID filenames in arxy/files?
- Yes, in principle you can avoid hash-based shared blobs by choosing a naming strategy such as PersistentPathStrategy with UUID names, since naming strategies are pluggable. Deduplication is a core design feature, so confirm in the bundle configuration and code whether checksum reuse can be fully disabled or must be bypassed with a custom strategy. Test the delete behavior carefully because preRemove still assumes it can remove the stored object.
- Does arxy/files support S3 or other Flysystem adapters?
- arxy/files delegates storage to Flysystem, so any existing Flysystem adapter such as local, S3, or GCS can be used for the file bytes while metadata is persisted in the database. In Laravel, the Storage facade is already a Flysystem wrapper, so FlysystemStorage would need to wrap a Storage::disk instance or be replaced. Serving files through signed object-store URLs rather than a PHP controller is an application concern you would need to add.
- Is arxy/files safe for production and actively maintained?
- Maturity signals are weak: the project has around 18 stars, zero dependents, a single maintainer, and a release date listed as 2026-09-30, which is in the future and should be treated as unreliable provenance. Verify the actual commit history and run Composer audit before adoption, especially because any hard dependency on symfony/framework-bundle would pull Symfony container and HTTP kernel components into a Laravel app. The MIT license is clean for vendoring or forking, but low ecosystem validation means you should budget for maintenance risk.
- What are alternatives to arxy/files for Laravel file uploads?
- For Laravel, a simpler path is the native Storage facade plus an Eloquent model for file metadata, optionally with an ecosystem package such as Spatie Media Library for conversions and collections. For Symfony with Doctrine, VichUploaderBundle is a more established uploader alternative. arxy/files remains interesting if you specifically want its Flysystem plus checksum-dedupe design and are willing to own the integration.
- What is portable from arxy/files for a Laravel implementation?
- The portable core is the Manager and ManagerInterface, FlysystemStorage, the naming strategy decorators, and the Repository interface, which the README shows can be constructed by hand in pure PHP. The Symfony DI extension, named manager configuration tree, Twig extension, form type, and serializer or LiipImagine normalizers are Symfony-specific and will not load in Laravel. Under Laravel you could reuse FlysystemStorage by wrapping a Storage::disk instance, or mine the design and reimplement the lifecycle hooks natively.