- How do I install finller/laravel-media in a Laravel app?
- Install it with composer require finller/laravel-media, then publish the package config and migrations. Add the media collection trait or interface to the owning Eloquent model, configure your disks, and queue conversions. You also need PHP 8.x, a Laravel version inside the package constraint, and an image driver such as GD or Imagick.
- What Laravel and PHP versions does finller/laravel-media support?
- The package requires PHP 8.x and a Laravel version within its Composer constraint. The overview does not list the exact CI matrix or a published support and deprecation policy, so check composer.json and the repository CI status before adopting it. Confirm the supported Laravel versions for your application before installation.
- Can finller/laravel-media generate nested conversions?
- Yes. The package supports nested media conversions, meaning conversions of conversions, through its conversion pipeline. This is useful when you need derivatives generated from other derivatives rather than only from the original file. Test nested conversions against your real disks and file types during evaluation.
- Does finller/laravel-media support S3 and multiple filesystems?
- Yes. It uses a Flysystem-backed disk abstraction and supports diverse filesystems and multiple disks, so local storage in development and S3-style object storage in production can work without code changes. You configure disks through the package configuration. Verify signed or temporary URL behavior and CDN support for your specific delivery needs.
- Is finller/laravel-media a good alternative to spatie/laravel-medialibrary?
- It has the same general architecture as spatie/laravel-medialibrary: a polymorphic media model, disk abstraction, and a conversion pipeline. It may be attractive if you want richer built-in metadata extraction and a fluent API, but do not run both media subsystems against the same models. Spatie has much broader adoption, so compare maturity, API stability, and feature coverage before switching.
- Is finller/laravel-media production ready?
- The architecture is conventional, but the dominant risk is maturity rather than technology. It has roughly 49 stars and a single-maintainer profile, which means a small user base, limited third-party bug-finding, and a realistic upstream abandonment scenario. Use an internal adapter layer, pilot it in a low-risk domain, and keep a fork-and-own contingency before putting it in a revenue path.
- How are media conversions queued and processed in finller/laravel-media?
- The package uses a conversion pipeline and the integration approach includes queuing conversions on workers. Before production, verify retry behavior, idempotency, and safety under multiple workers with your Redis or database queue setup. These operational details are not fully documented in the provided overview, so validate them in a spike.
- What image and video formats does finller/laravel-media support?
- Images require an image driver such as GD or Imagick, and audio or video metadata extraction and conversions require ffmpeg and ffprobe on the worker fleet. The overview mentions responsive images but does not confirm WebP, AVIF, srcset, or video and audio conversion coverage. Confirm format support against your real file types during evaluation.
- Does finller/laravel-media clean up media when a model is deleted?
- Storage lifecycle and garbage collection for orphaned media or derivatives are not documented in the provided overview. You should explicitly test what happens on model delete and whether derivative files are removed. If cleanup is incomplete, plan your own scheduled garbage collection before using it with large media volumes.
- How should I evaluate or adopt finller/laravel-media safely?
- Run a one-week spike on a throwaway branch with one representative model, one collection, one nested conversion, an S3 disk, and a queued worker. Wrap the package behind an internal MediaService interface for attach, convert, URL, and delete operations. Then pilot it in one low-risk domain such as CMS article images or user avatars before broadening adoption.