symfony/esendex-notifier
Symfony Notifier bridge for Esendex SMS. Configure via ESENDEX_DSN (email/password, account reference, from) and send SmsMessage notifications. Supports EsendexOptions for per-message settings like accountReference and more.
SmsMessage abstraction, and EsendexOptions) can be adapted for Laravel via:
symfony/http-client for API calls while using the bridge’s DTOs (EsendexOptions).Illuminate\Notifications\Notification to integrate the bridge’s message composition logic.Messenger component.esendex://EMAIL:PASSWORD@... format can be parsed via Laravel’s config() or environment variables.SmsMessage and EsendexOptions classes can be instantiated manually or wrapped in a Laravel service.$this->app->bind(EsendexNotifier::class, function ($app) {
return new EsendexNotifier($app['http.client'], $app['config']['esendex']);
});
NotificationException)database, redis) can process jobs with retry logic.notifiable contracts → May need custom event listeners.POST /esendex/callback)?| Laravel Component | Fit Level | Integration Strategy | Potential Challenges |
|---|---|---|---|
| Service Container | High | Bind EsendexNotifier via a service provider. Use config('services.esendex') for DSN. |
Manual setup; no native Laravel Facade. |
| Queue System | High | Use Laravel queues to process SmsMessage jobs asynchronously. |
Esendex API rate limits may require queue batching. |
| Notifications System | Medium | Extend Illuminate\Notifications\Notification to use the bridge’s SmsMessage. |
May conflict with Laravel’s Notifiable contracts. |
| HTTP Client | High | Use symfony/http-client or Guzzle for API calls if the bridge isn’t fully adapted. |
Additional abstraction layer if not using the bridge directly. |
| Event System | Medium | Listen for Esendex webhooks (e.g., delivery status) via Laravel events. | Requires custom middleware or routes for webhook endpoints. |
| Configuration | High | Store DSN in .env (e.g., ESENDEX_DSN=esendex://...) and load via config/services.php. |
No native Laravel config schema for Esendex. |
| Testing | Medium | Mock EsendexNotifier in PHPUnit using Laravel’s Mockery or createMock(). |
Bridge’s Symfony dependencies may require additional mocking. |
symfony/esendex-notifier and symfony/http-client via Composer..env and test a single SMS send in a Laravel controller.app/Services/EsendexNotifierService) to wrap the bridge.Illuminate\Notifications\Notification to use the bridge for SMS.EsendexChannel in Laravel’s notification channels.symfony/dependency-injection).symfony/esendex-notifier, symfony/http-client..env.EsendexNotifier.EsendexOptions for custom message settings.Log facade).composer require symfony/esendex-notifier:^8.0 with ^ to allow minor updates.How can I help you explore Laravel packages today?