Altyapı Kesintisi mi Yaşıyorsunuz?
+90 530 476 48 00
Laravel SMS API Paketi Yayında
Mimari & Backend
Yayın Tarihi: 11 Ağustos 2026 5 Dakika Okuma

Laravel SMS API Paketi Yayında

Laravel SMS API Paketi Yayında: Türkiye'deki SMS Sağlayıcılarını Tek Arayüzde Birleştirin

Laravel projelerinde SMS gönderimi artık daha kolay.

Canopus Bilişim olarak geliştirdiğimiz fatihgirgic/laravel-sms-api paketi, Türkiye'de yaygın olarak kullanılan SMS servis sağlayıcılarını Laravel uygulamalarında tek ve ortak bir arayüz üzerinden kullanabilmenizi sağlıyor.

Paket, 11 Ağustos 2026 tarihinde Packagist üzerinde yayınlandı ve açık kaynak olarak geliştirilmeye devam ediyor.

Neden Böyle Bir Pakete İhtiyaç Var?

Bir Laravel projesine SMS özelliği eklediğinizde genellikle kullandığınız SMS sağlayıcısının API'sine özel kodlar yazmanız gerekir.

Örneğin projeniz Netgsm kullanıyorsa Netgsm API'sine, başka bir projede Verimor kullanıyorsanız Verimor API'sine göre farklı entegrasyonlar oluşturmanız gerekebilir.

Bu yaklaşım kısa vadede çalışsa da uzun vadede kodun sağlayıcıya bağımlı hale gelmesine neden olur.

laravel-sms-api bu problemi driver tabanlı mimari ile çözmeyi amaçlıyor.

Uygulamanızdaki SMS gönderim kodu değişmeden, .env üzerinden kullanılacak sağlayıcıyı değiştirebilirsiniz.

Desteklenen SMS Sağlayıcıları

Paketin mevcut sürümünde aşağıdaki sağlayıcılar destekleniyor:

  • Mutlucell

  • Verimor

  • Netgsm

  • VatanSMS.net

  • İletimerkezi

Paketin amacı, farklı sağlayıcıların farklı API yapılarını Laravel uygulamasından mümkün olduğunca soyutlamak ve geliştiriciye ortak bir kullanım deneyimi sunmak.

Kurulum

Paketi Composer üzerinden birkaç saniye içerisinde projenize ekleyebilirsiniz:

composer require fatihgirgic/laravel-sms-api

Laravel'in package auto-discovery özelliği sayesinde servis sağlayıcı ve Sms facade'i otomatik olarak yüklenir.

İhtiyaç halinde config dosyasını da yayınlayabilirsiniz:

php artisan vendor:publish --tag=sms-config

Bu işlem sonrasında config/sms.php dosyanız oluşturulur.

SMS Sağlayıcınızı .env Üzerinden Seçin

Örneğin İletimerkezi kullanmak için:

SMS_DRIVER=iletimerkezi

Diğer sağlayıcıların kimlik bilgileri de kendi environment değişkenleri üzerinden tanımlanabiliyor.

Bu sayede SMS sağlayıcınızı değiştirmek istediğinizde uygulamanızdaki SMS gönderim kodlarını baştan yazmanız gerekmiyor.

SMS Göndermek Çok Basit

Paketi kullanmanın en temel yolu Sms facade'i üzerinden SMS göndermek:

use Canopus\SmsApi\Facades\Sms;

$response = Sms::send(
    '905551112233',
    'Merhaba dünya!'
);

Birden fazla telefon numarasına aynı mesajı göndermek de mümkün:

$response = Sms::send(
    [
        '905551112233',
        '905551112244'
    ],
    'Merhaba dünya!'
);

İsterseniz varsayılan sağlayıcıdan bağımsız olarak belirli bir driver'ı doğrudan seçebilirsiniz:

$response = Sms::driver('netgsm')
    ->send(
        '905551112233',
        'Merhaba!'
    );

Bu yapı sayesinde uygulamanızın SMS gönderim mantığı ile SMS sağlayıcısının API'si birbirinden ayrılmış olur.

Gönderim Sonucunu Kontrol Edin

Paket, sağlayıcıların farklı response yapılarını ortak bir SmsResponse nesnesi altında topluyor.

Örneğin:

if ($response->successful()) {
    logger()->info('SMS gönderildi', [
        'messageId' => $response->messageId
    ]);
} else {
    logger()->error('SMS gönderilemedi', [
        'hata' => $response->errorMessage
    ]);
}

Response içerisinde:

  • successful() / failed()

  • messageId

  • errorMessage

  • raw

alanlarına erişebilirsiniz.

Dependency Injection Desteği

Facade kullanımının yanında SmsManager üzerinden Dependency Injection da kullanılabilir.

Örneğin bir bildirim servisinde:

use Canopus\SmsApi\SmsManager;

class BildirimServisi
{
    public function __construct(
        private SmsManager $sms
    ) {}

    public function dogrulamaKoduGonder(
        string $telefon,
        string $kod
    ): void {
        $this->sms->send(
            $telefon,
            "Doğrulama kodunuz: {$kod}"
        );
    }
}

Bu yaklaşım özellikle büyük Laravel uygulamalarında servis katmanını daha düzenli ve test edilebilir tutmak için kullanılabilir.

Ek Gönderim Seçenekleri

SMS gönderirken bazı seçenekleri doğrudan gönderebilirsiniz.

Örneğin gönderici adını değiştirmek veya ileri tarihli gönderim planlamak mümkündür:

Sms::send(
    '905551112233',
    'Merhaba!',
    [
        'sender' => 'FIRMA',
        'scheduledAt' => '2026-08-12 10:00',
    ]
);

Desteklenen seçenekler kullanılan SMS sağlayıcısının API yeteneklerine bağlı olarak değerlendirilmektedir.

Laravel ve PHP Uyumluluğu

Paket şu anda:

  • PHP 8.1+

  • Laravel 10

  • Laravel 11

  • Laravel 12

  • Guzzle 7.5+

ile çalışacak şekilde yapılandırılmıştır.

Ayrıca paket içerisinde PHPUnit ve Orchestra Testbench kullanılarak test altyapısı da bulunmaktadır. Driver testlerinde gerçek SMS gönderimleri yerine Guzzle MockHandler kullanılarak sahte HTTP yanıtları üzerinden test yapılmaktadır.

Yeni SMS Sağlayıcıları Eklenebilir

Paketin driver mimarisi yeni SMS sağlayıcılarının eklenmesini de kolaylaştıracak şekilde tasarlandı.

Yeni bir sağlayıcı eklemek için Canopus\SmsApi\Contracts\SmsDriver arayüzünü uygulayan bir driver oluşturulması ve SmsManager içerisinde ilgili driver'ın tanımlanması yeterli.

Bu sayede paket yalnızca mevcut sağlayıcılarla sınırlı kalmayacak şekilde geliştirilmeye uygun bir mimariye sahip.

Açık Kaynak ve MIT Lisansı

fatihgirgic/laravel-sms-api MIT lisansı ile yayınlandı.

Kaynak kodu GitHub üzerinde herkese açık durumda. Issue ve Pull Request'ler üzerinden katkıya da açık.

Paketi İnceleyin

Paketi Composer üzerinden doğrudan projenize ekleyebilirsiniz:

composer require fatihgirgic/laravel-sms-api

Packagist:
fatihgirgic/laravel-sms-api

GitHub:
fatihgirgic/laravel-sms-api

Canopus Bilişim olarak Laravel ve PHP ekosistemi için geliştirici odaklı açık kaynak araçlar geliştirmeye devam ediyoruz.

SMS entegrasyonunu farklı projelerde tekrar tekrar sıfırdan yazmak yerine, ortak bir altyapı kullanmak istiyorsanız laravel-sms-api projeniz için iyi bir başlangıç noktası olabilir.

Github: https://github.com/fatihgirgic/laravel-sms-api

FG
Yazar

Fatih Girgiç