symfony/allmysms-notifier
Symfony Notifier bridge for AllMySms. Configure via ALLMYSMS_DSN with login, API key, and optional sender. Send SmsMessage through AllMySms and customize delivery using AllMySmsOptions (campaign, scheduling, simulation, identifiers, verbosity).
Illuminate\Bus\Queueable and Illuminate\Notifications\Notifiable traits can leverage this package with minimal abstraction.AllMySmsOptions class can be extended or wrapped to fit Laravel’s DTO patterns (e.g., LaravelAllMySmsOptions).sent, failed) can integrate with AllMySMS’s delivery status updates, enabling real-time logging or notifications.HttpClient with Laravel’s Http facade or Guzzle.Notifier to Laravel’s Notification system by creating a custom SmsChannel or extending Illuminate\Notifications\Channels\SmsChannel..env can directly consume the ALLMYSMS_DSN format (e.g., ALLMYSMS_DSN=allmysms://LOGIN:APIKEY@default?from=FROM).AllMySmsOptions to support Laravel’s collection or array-based configurations (e.g., config('sms.options')).Notifier). Mitigate by abstracting the transport layer behind an interface (e.g., SmsTransportInterface).notifiable trait support). Requires custom SmsChannel implementation.Notifier with Laravel’s Notification system by creating a custom SmsChannel that uses the AllMySMS transport.database, redis) for async SMS delivery and retries.AllMySmsServiceProvider).Mockery, Pest) to test the AllMySMS transport in isolation.AllMySmsLaravel).SmsChannel for Laravel’s Notification system.send() to use the AllMySMS transport.AllMySmsOptions via Laravel’s config or DTOs.Notifiable trait for user notifications.sent/failed SMS (e.g., log to database or trigger webhooks).HttpClient → GuzzleHttp or Illuminate\Support\Facades\Http.Messenger → Laravel’s queues.Notifier → Custom SmsChannel.AllMySmsOptions to support Laravel’s translation system.SmsSent/SmsFailed events for real-time processing..env for DSN and API key management.config/sms.php or a service provider.SmsChannel and test basic SMS sending.AllMySmsOptions (e.g., scheduling, campaign names).composer.json to manage the package and its dependencies.How can I help you explore Laravel packages today?