Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Notifier Laravel Package

symfony/notifier

Symfony Notifier lets your app send notifications through multiple channels like email, SMS, chat, and more. It provides a unified API, integrates with many third-party providers, and supports routing, transports, and message formatting for flexible delivery.

View on GitHub
Deep Wiki
Context7

Sends notifications via one or more channels (email, SMS, ...)

Frequently asked questions about Notifier
How do I integrate Symfony Notifier with Laravel’s existing notification system (e.g., Notifiable trait)?
Symfony Notifier works seamlessly with Laravel’s `Notifiable` trait. You can extend Laravel’s `Notification` class and use Symfony’s `NotifierInterface` to send messages through multiple channels. For example, replace `Mail::send()` with `$notifier->send(new EmailNotification($user, $data))` while keeping Laravel’s event-driven workflow intact.
Which Laravel versions does Symfony Notifier support, and are there breaking changes?
Symfony Notifier is compatible with Laravel 8.x, 9.x, and 10.x, as it relies on Symfony’s ecosystem (e.g., Symfony 6/7). Breaking changes are minimal if you follow Symfony’s versioning, but always check the [Symfony Notifier docs](https://symfony.com/doc/current/notifier.html) for Laravel-specific notes, especially when upgrading Symfony components.
Can I use Symfony Notifier for SMS notifications in Laravel without third-party packages like Laravel Notifications?
Yes. Symfony Notifier supports SMS via transports like `TwilioTransport` or `VonageTransport`. Configure the DSN in `.env` (e.g., `NOTIFIER_DSN=twilio://token@from?url=https://api.twilio.com`) and inject the `NotifierInterface` into your Laravel service. No additional Laravel packages are required beyond Symfony’s core.
How do I handle failed notifications (e.g., bounced emails or SMS delivery failures) in production?
Symfony Notifier emits `SentMessage` events for every delivery attempt. In Laravel, subscribe to these events using `Event::listen()` and log failures to a database or monitoring tool like Sentry. For retries, leverage Laravel’s queue system (e.g., `queue:work`) with exponential backoff via Symfony’s `RetryStrategy`.
Is it possible to route notifications dynamically (e.g., send SMS to admins, email to users) in Laravel?
Absolutely. Use Symfony’s `Notification` class to define recipient-specific logic. For example, override the `via()` method to return an array of transports: `return ['email', 'sms']` for users and `['slack']` for admins. Laravel’s service container lets you inject dynamic rules based on user roles or preferences.
How do I customize notification templates (e.g., Blade for emails, Slack blocks for chat) with Symfony Notifier?
Symfony Notifier supports Blade/Twig templates for emails and rich formats like Slack blocks or Discord embeds. For Blade, use Laravel’s `view()` helper inside your `Notification` class (e.g., `$message->html($this->render('emails.alert', $data))`). For Slack, define a custom `SlackTransport` with pre-formatted blocks or use Symfony’s `RichNotification` for structured content.
Can I use Symfony Notifier for real-time notifications (e.g., WebSocket alerts) in Laravel?
Yes, but indirectly. Symfony Notifier handles the delivery layer, while Laravel’s [Mercure](https://mercure.rocks/) or [Laravel Echo](https://laravel.com/docs/echo) can broadcast events triggered by `SentMessage` events. For example, emit a Mercure update when a notification is sent, then use JavaScript to display it in real time.
What are the performance implications of using Symfony Notifier in Laravel for high-volume apps?
Symfony Notifier is optimized for performance. For high-volume apps, queue all notifications using Laravel’s queue system (e.g., Redis or database) to avoid blocking requests. Symfony’s `AsyncTransport` can also batch deliveries. Monitor queue depth and consider horizontal scaling (e.g., multiple queue workers) to handle spikes.
How do I secure webhook callbacks (e.g., Slack or Twilio) when using Symfony Notifier?
Symfony Notifier includes built-in signature validation for webhooks. Configure the transport with a secret (e.g., `slack://token@channel?secret=your_signing_secret`). Laravel’s middleware can further validate incoming requests. For Twilio, use Symfony’s `TwilioTransport` with `signature` validation in the DSN.
Are there alternatives to Symfony Notifier for Laravel, and when should I choose them?
Laravel’s built-in `Notification` system (e.g., `Mailable`, `Channel`) is sufficient for simple email/SMS use cases. However, Symfony Notifier excels for multi-channel apps (e.g., Slack + SMS + Email) with complex routing or third-party integrations. Choose it if you need extensibility (e.g., custom transports) or Symfony’s event-driven architecture. For lightweight needs, stick with Laravel’s native tools.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
codraw/entity-migrator
codraw/doctrine-extra
codraw/aws-tool-kit
codraw/validator
codraw/workflow
codraw/open-api
codraw/cron-job
codraw/process
codraw/log
nexmo/api-specification
capell-app/block-library
axium/identity
cetria/laravel-dummy-models
cetria/reflection-helper
agropredict/sso-auth-bundle
evolvestudio/spam-protection
datacore/hub-sdk
develia/commons
cuci/prototurk-sdk
cuci/prototurk-sdk-symfony