Proje: Okul Platform · Hub: Okul Platform — Architecture

SmsService

app/Services/Sms/SmsService.php — Laravel Manager sınıfından extend.
AppServiceProvider’da singleton: app()->singleton('sms', ...)

Provider Mimarisi

Laravel Manager pattern — birden fazla SMS sağlayıcısı desteklenebilir.

Mevcut driver: infobip
Config: config/sms.phpsms.providers.infobip.base_url + api_key

Infobip Driver

app/Services/Sms/Providers/InfobipDriver.php
infobip/infobip-api-php-client paketi kullanır.

Kullanım

app('sms')->to('05362238422')->send('Mesaj')
app('sms')->driver('infobip')->to($phone)

OTP SMS

OtpCodeType::TYPE_PHONESendOtpCodeSmsJob → SmsService

Test Ortamında

phpunit.xml: SMS_PROVIDER=null — Testlerde SMS gönderilmez.

Yeni Provider Ekleme

  1. config/sms.php’a provider tanımla
  2. create{Provider}Driver() metodu ekle
  3. Mevcut Driver’ı implement et