- Can I use jolicode/media-bundle in a Laravel application?
- No. jolicode/media-bundle is a Symfony bundle, not a framework-agnostic PHP library. It boots through the Symfony kernel and depends on a Bundle class, a DI extension and config tree, tagged services, Twig helpers, and Symfony Form types, none of which load in a Laravel application. Treat it as a design reference for your own media model rather than a dependency.
- Is jolicode/media-bundle a Laravel package or a Symfony bundle?
- It is a Symfony bundle maintained by JoliCode for attaching images, video, audio, and documents to Doctrine entities. The README, service wiring, and admin integrations are all Symfony-centric, and nothing in the package targets Laravel's service container or Eloquent. If you are evaluating Composer packages for a Laravel app, this one sits outside your target framework.
- How do I install and configure jolicode/media-bundle?
- Install it with Composer and register the bundle in your Symfony application's bundle configuration, then define storage and filesystem settings in the bundle's config tree. There is no Laravel service provider and no publishable config, so no artisan install command applies. Check the repository README for the exact bundle class name and configuration keys before wiring it up.
- Does jolicode/media-bundle support S3 storage and temporary URLs for private media?
- Yes. Version 0.10.0 added S3 integration tests, making object storage a CI-verified path rather than an assumed Flysystem side effect, along with a temporary URL feature for signed delivery of private media. Both are delivery-layer primitives that also work outside a server-rendered admin. Confirm the temporary URL implementation covers the specific storage driver you use, since S3 is the tested target.
- Can I swap the image transformation backend for Intervention Image or LiipImagine?
- Not without forking. Version 0.10.0 requires imagine/imagine by default and moved the convert service into core, so Imagine is the internal engine rather than a swappable delegate. The LiipImagine-style delegation model is not how this bundle is structured. Plan on a hard dependency on Imagine and check what that requirement does to an existing composer.lock that already pins an imaging library.
- Do I need EasyAdmin or Sonata Admin to upload and manage media?
- No. The bundle ships a form type, Twig helpers, and upload handling that work with any Symfony form, while the EasyAdmin, Sonata, and Sylius integrations are optional conveniences. Version 0.10.0 replaced Dropzone with an internal uploader and moved srcset generation from Twig into a resolver. Both are behavior changes if you had customized the upload widget or templates.
- How are media stored - Doctrine entities or Eloquent models?
- Media are Doctrine entities, including a reusable Media entity with metadata and Doctrine associations. That persistence model is incompatible with Eloquent regardless of container differences, so a Laravel port would mean rebuilding the model layer from scratch. It is the first hard blocker in any migration spike.
- Which Laravel package should I use instead for media management?
- For Laravel, use Spatie Laravel Media Library for attaching files to Eloquent models, Intervention Image or Glide for on-the-fly resizing and cropping, and Laravel's filesystem with temporaryUrl for signed S3 delivery. Together those cover the same use cases this bundle covers in Symfony without a framework mismatch.
- Is jolicode/media-bundle production ready at version 0.10?
- It is MIT licensed, maintained by JoliCode, and actively developed, with roughly nineteen pull requests and three first-time contributors landing in the 0.10.0 release. However, it is still a 0.x package, so minor bumps can carry behavior changes such as a new hard dependency, an uploader replacement, and a convert-service relocation. Audit the changelog before upgrading and pin your version.
- What breaking changes does version 0.10.0 introduce?
- 0.10.0 makes imagine/imagine a default requirement, moves the convert service into core, replaces Dropzone with an internal uploader, moves srcset generation from Twig into a resolver, adds temporary URLs and S3 tests, and normalizes trash_path so the trash directory cannot be deleted. If you customized the upload widget or Twig templates, expect to update that code after upgrading.