notify-eu/notify-bundle
Notify Bundle provides PHP integration for the Notify.eu notification platform, adding configuration and services to send notifications from your application. It simplifies wiring Notify into Symfony-based projects with a clean, framework-friendly API for transactional messaging workflows.
config/notify.php, and will not expose Facades. It is usable in Laravel only if you pull in the Symfony components it depends on and wire it manually — realistically this belongs in a Symfony service, a standalone worker, or a shared internal service, not in a Laravel app.composer require <vendor>/notify-bundle:^1.0. On Symfony, register the bundle in config/bundles.php (NotifyBundle::class => ['all' => true]).Resources/config/services.(xml|yaml|php) to see what services are actually public/autowirable, then the bundle's DependencyInjection/Configuration.php — that file is the authoritative list of every config key, its defaults, and whether it's required. Release notes are a single line, so the config tree is your real documentation.php bin/console config:dump-reference notify (adjust the alias to whatever the bundle extension is named). This prints the full tree with defaults and is the fastest way to discover required values like a transport DSN or API key.App\Notification\Notifier) that wraps the bundle's API, so a v1.x API change touches one class instead of every call site. This matters more than usual given the 1.0 version number.config/packages/notify.yaml with an env-driven DSN (%env(NOTIFY_DSN)%), and a null/log transport for test and dev. Never let a test suite hit a live provider.Message class or a bus config key), route sends through Messenger with a dedicated transport and retry policy. If it doesn't, wrap calls in your own DispatchableMessage rather than sending inline in a request.debug:event-dispatcher to enumerate) for logging, audit trails, and metrics. Subclassing a bundle service is the fastest way to break on a 1.1 upgrade.^1.0 and treat the public API as provisional until a 1.1 lands with real notes. Read the released source before depending on any method not shown in the README.Notification system (mail/database/broadcast/vonage/slack channels, queueing, Notification::fake()) covers the same ground with zero integration cost. Only adopt this bundle in Laravel if a specific provider or Symfony-side feature is unavailable natively — otherwise the maintenance overhead of a hand-wired Symfony bundle in a Laravel app is not justified.bundles.php entry produces a confusing "service not found" rather than a clear "bundle not registered" error. If autowiring fails, check registration first, then config/services.yaml exclude rules.config/packages/<alias>.yaml; the alias normally comes from the extension class name, not the Composer package name. config:dump-reference with a guessed alias will just error — get the real alias from the Extension class or by running debug:config with no arguments.cache:clear (and cache:warmup in prod). A stale container is the single most common "the config key has no effect" cause.debug:container --show-private <service> to confirm the notifier is registered, debug:event-dispatcher for hooks, and the Symfony profiler's events/services panels in dev. Errors surfacing as ServiceNotFoundException are almost always an unregistered bundle or a missing transport config.decorates: is safer than overriding service definitions, which will silently break on a minor release.config/packages/*.yaml committed to git. If the bundle supports Symfony Secrets, use the vault for prod.How can I help you explore Laravel packages today?