Kavenegar::send()). This fits Laravel’s architectural philosophy of dependency injection and simplified syntax.SmsSent) for async processing (e.g., retries, analytics)..env or config file), which is secure but not centralized (e.g., no Vault integration). Risk of hardcoding keys if not managed.KavenegarManager). Supports custom HTTP clients (e.g., Guzzle with retries).KavenegarClient) can be mocked via Laravel’s MockHttp.KavenegarException). No retry logic for transient failures (e.g., network issues). Requires custom middleware or Laravel’s retry helper..env. No built-in key rotation support.Kavenegar::later()) or batch processing.KavenegarClient implementations.SmsSent, SmsFailed events.KavenegarClient in PHPUnit.kavenegar/php (PHP extension for SMS API). Ensure compatibility with your PHP version (e.g., PHP 8.1+ for Laravel 10).vonage/client-laravel).composer require kavenegar/laravel
.env:
KAVENEGAR_API_KEY=your_key
Kavenegar::send().messageId and status.kavenegar/php extension compatibility.kavenegar/php is installed:
php -m | grep kavenegar
If missing, install via PECL or system package manager (e.g., apt-get install php-kavenegar).config/kavenegar.php).Kavenegar facade..env.use Kavenegar\Facades\Kavenegar;
Kavenegar::send('1234567890', 'Your OTP is 1234', '10001234');
retry helper).SmsSent).messageId, status) for debugging.kavenegar/php extension and Laravel dependencies in tandem..env or a secrets manager (e.g., AWS Secrets Manager).config/kavenegar.php..env and Kavenegar panel.debugbar to inspect HTTP calls.Kavenegar::getClient()->setDebug(true) for verbose logs.interface SmsService {
public function send(string $to, string $message);
}
class KavenegarService implements SmsService {
// ...
}
dispatch(new SendSmsJob($to, $message));
SmsBatch job).| Failure Scenario | Impact | Mitigation |
|---|
How can I help you explore Laravel packages today?