- Is symfony/ux-notify a Laravel package?
- No. symfony/ux-notify is a Symfony UX bundle, not a Laravel package. It ships no Laravel service provider, no Blade or Livewire components, and no Vite or Laravel Mix integration, so it does not plug into Laravel's conventions out of the box. Using it in Laravel would require a bespoke integration layer.
- Can I use symfony/ux-notify in a Laravel application?
- Technically the PHP runtime is compatible and Symfony components can coexist in a Laravel vendor tree, but the delivery model relies on Symfony Flex recipes, bundle registration, Twig and AssetMapper. A Laravel adoption means reimplementing the markup in Blade, porting the Stimulus controller into a Vite module, and wiring a Mercure hub client manually. The marginal value over Laravel-native options like session flash plus a JS toast library is usually negative.
- What does symfony/ux-notify actually do?
- It provides a server-driven notification system for Symfony apps, letting you dispatch user-facing alerts from PHP and render them in the browser as flash messages or toasts. Rendering happens through Twig components and a Stimulus controller, with Symfony Notifier and Mercure integration for real-time delivery. It is aimed at consistent, real-time notifications in Symfony UX applications.
- How do I install symfony/ux-notify?
- In a Symfony app you install it with Composer and let Symfony Flex apply the recipe, which registers the bundle and sets up assets. You then configure your Mercure hub and render the provided Twig component in your layout. There is no equivalent one-command path for Laravel, so installation there requires manual wiring.
- What changed in symfony/ux-notify v3.6.0?
- Version 3.6.0 is a minor, backward-compatible release with no breaking API changes or announced deprecations. It adds MercureBundle ^0.6 support and widens support to ^0.5 and Mercure ^0.8, plus adds a conflict guard against symfony/asset-mapper >= 8.2. The remaining changes are asset baseline checks and tooling or README hygiene.
- Why does symfony/ux-notify conflict with symfony/asset-mapper 8.2 or newer?
- Version 3.6.0 introduces a hard conflict rule with symfony/asset-mapper >= 8.2, which is a constraint guard rather than a fix. If your project already pins or transitively pulls a newer asset-mapper, Composer resolution will fail until the constraint is lifted or you stay on 3.5.x. This is the highest-risk item for evaluators of this release.
- Which Mercure version does symfony/ux-notify support?
- The 3.6.0 release widens the compatibility matrix to MercureBundle ^0.5 and ^0.6 along with Mercure ^0.8. Because that surface is churning across minor versions, you should pin your Mercure versions explicitly. Also confirm whether your hub is shared infrastructure or per-application before adopting.
- What is the best pattern for combining Symfony notifications with a Laravel frontend?
- Treat notifying as a Symfony-side concern and consuming as a Laravel-side one. Publish notification events to a shared Mercure hub from Symfony, then render them in Laravel with a small Blade and Vite toast consumer. This keeps Laravel native, avoids porting Stimulus controllers, and still delivers the real interoperability benefit.
- What alternatives should Laravel developers consider instead?
- Laravel session flash messages combined with a JavaScript toast library cover most use cases with zero integration cost. Livewire or Filament notification components handle richer in-app alerting. If you need real-time push, Laravel Echo with Pusher, Reverb or a Mercure client lets you build a native consumer without pulling in a Symfony UX bundle.
- Is symfony/ux-notify actively maintained and safe for production?
- The 3.6.0 release shows healthy maintenance signals, including Web Platform Baseline asset checks and documentation hygiene work. It is a minor release with no breaking changes, so upgrading from 3.5.x within Symfony is routine. The main production concerns are pinning Mercure versions and verifying no dependency requires symfony/asset-mapper 8.2 or newer.