tartan/laravel-iranian-sms
Laravel package that unifies Iranian SMS gateways behind one driver-based API, letting you send messages through providers like Kavenegar and Melipayamak via Laravel notifications, queues, and simple config-driven setup.
Architecture fit
SmsGateway contract, per-operator drivers selected by config.Illuminate\Support\Facades\Http) will not be PSR-18/PSR-7 clean. We should not let its interfaces leak into our domain layer.Integration feasibility
defer provider properties, array_except/str_* helpers, facade $app access, and config() semantics have all shifted. Expect the package to install but fail at boot on Laravel 9/10/11.Technical risk
Key questions
Stack fit
SmsSender interface, register the package facade only inside an infrastructure module, and expose a Notification channel to product code. Product code must never use a package class directly.Http::withToken()->retry()->post() so we inherit Laravel's HTTP client, fakes, and logging — this alone removes most of the maintenance surface.Migration path
Str/Arr, replace Guzzle calls with the HTTP client, add composer.json version constraints, and add a PHPUnit/Pest suite with Http::fake() fixtures per operator.Compatibility
Sequencing
SmsSender contract + queueable job + delivery-status polling.Maintenance
Support
Scaling
RateLimiter and a circuit breaker so one degraded operator does not stall the queue worker.Failure modes
Ramp-up
How can I help you explore Laravel packages today?