- Is netbull/media-bundle compatible with Laravel?
- No. netbull/media-bundle is a Symfony bundle built on Symfony's DI Extension, configuration tree, compiler passes and tagged services, and it uses Doctrine ORM rather than Eloquent. Dropping it into Laravel means hand-wiring the container and bypassing its own bootstrapping, which is a permanent adapter tax. For a Laravel application, porting the media logic into a Laravel-native package is usually cheaper than bridging, and the MIT license permits that.
- How do I install netbull/media-bundle with Composer?
- Run composer require netbull/media-bundle, then register the bundle in your Symfony bundles.php and import its configuration through the bundle's config tree. Resolve Composer constraints first: check the PHP version, the symfony/* range, the doctrine/orm range and any transitive abandoned flags. After that, update your Doctrine schema or generate a migration so the bundled Media entity and its associations exist.
- Does Netbull MediaBundle work with Doctrine entities?
- Yes. The bundle ships a ready-to-use Media entity with associations, so you can attach images, documents and other uploads to any Doctrine-managed model with minimal boilerplate. The intended usage is inside a Symfony application where Doctrine ORM is already the persistence layer and services are autowired. Eloquent-based Laravel models are not supported.
- Does it support video uploads or only images?
- The bundle manages video assets as well as images, which is a materially larger dependency and runtime surface than image thumbnailing alone. Video implies binary transcoding, longer-running jobs and derived-asset fan-out such as poster frames and multiple renditions, so evaluate it as a separate subsystem. Confirm that the required media binaries are present and version-pinned in your container image before committing.
- How are thumbnails generated and are storage paths configurable?
- The bundle provides thumbnail generation for image previews and configurable storage paths with lifecycle management. Whether the underlying storage abstraction is adapter-based, and therefore whether Flysystem or object storage will work, is unverified and should be checked in your spike. Verify which image or video backend the thumbnail generation depends on and pin it in your runtime image.
- How do I render uploaded media in templates?
- The bundle ships Twig helpers so you can render media and thumbnails in templates without writing path logic yourself, working alongside the configurable storage paths. In a Symfony app this is a direct win for keeping templates clean. In a Laravel app there is no Blade equivalent, so you would have to reimplement those helpers as part of any port.
- What changed in version 7.2.14, and is upgrading from 7.2.13 breaking?
- Version 7.2.14 is a single non-breaking bug fix for orphaned thumbnails on video delete, with no API, configuration or schema changes. It is a drop-in patch from 7.2.13 and requires no upgrade work. The release does not include evidence of a CI matrix, security policy or test-coverage change, so treat those non-functionals as unchanged.
- How does it handle deleting media and cleaning up orphaned files?
- The most recent fix targeted deletion, which is exactly where orphaned-storage defects live, and it addressed a single thumbnail orphan in the video delete path. That suggests delete and cleanup semantics are lightly exercised. Plan to own reconciliation yourself with a scheduled job that compares stored files against media records rather than trusting the bundle's delete path.
- Is it production-ready, and what about maintenance and security?
- Patch releases are landing, so maintenance cadence is real, but the project has one star, zero dependents and a single maintainer, so no ecosystem has validated it in production. There is no visible disclosure policy, advisory history or dependency-scanning CI, meaning you inherit CVE triage yourself. Video support additionally inherits the CVE surface of whatever transcoding binary and library bindings it shells out to.
- What are the alternatives for a Laravel project, bridge it or port it?
- Treat the bundle as a research exercise rather than a dependency: read the media handling, upload and association logic and reimplement it in a Laravel-native package using Eloquent and your existing filesystem abstraction. Video support makes bridging even less attractive, because you would effectively be reimplementing a transcoding pipeline behind an adapter layer. The MIT license makes a clean port straightforward and avoids a permanent Symfony compatibility tax.