masihjay-z/kavenegar
Laravel integration for the Kavenegar SMS API, providing a simple way to send SMS messages, OTP codes, and lookup-based notifications from your PHP applications through a clean, framework-friendly wrapper.
Consider it only in one narrow case: you already operate a legacy Laravel 4.x/5.x application on PHP 5.6–7.x, you need Kavenegar wired up quickly for a fix or small feature, and the migration is already funded. Even then, treat it as a stopgap with an owner and a removal date, wrapped behind an internal SmsSender interface so it can be swapped out.
Do not consider it if any of the following hold:
illuminate/support constraints won't line up cleanly; you'll need workarounds you'll regret.Notification channel, inbound-SMS webhooks, delivery-status callbacks, lookup/template APIs, idempotency, or retry/backoff policy. None of this should be assumed.Look elsewhere or build instead:
Http client, and expose it as a Notification channel. You own the upgrade path, the error semantics, and the logging.kavenegar/laravel package / Kavenegar's own SDK if it is maintained and supports your framework version — check Packagist and the repo's last commit before writing anything.SmsSender interface and fake it in tests so CI never burns credit or depends on the network.For executives: This is an unmaintained community wrapper for an Iranian SMS gateway, written for the Laravel 4/5 era. Don't adopt it. The underlying question is still a real product decision — do we ship SMS/OTP for our Iran-facing users, and with which vendor? That needs compliance and vendor checks (sanctions exposure, data residency, payment channel) before we spend engineering time, because provider choice is much cheaper to resolve now than after launch. On the engineering side, the delta between this package and a small in-house client is roughly two days saved versus inheriting a dead dependency that blocks our next Laravel upgrade.
For engineering: Thin adapter over Kavenegar's REST API — facade + config + service provider, no maintenance signal (score 0, zero stars, zero dependents). Framework target is EOL. Integration cost is under a week either way, so the recommendation is to skip the dependency and spike a one-day internal client: Http-based send, a Notification channel, queued sending with rate limiting, structured logging of the raw response (remember Kavenegar returns 200 with errors in the body), and a FakeSmsSender for tests. Evaluate the vendor separately on compliance, pricing, and delivery reliability.
How can I help you explore Laravel packages today?