LaravelPackages.net
Acme Inc.
Toggle sidebar
andreasnij/laravel-sms-notification-channel

An SMS notification channel for the PHP framework Laravel.

3.760
3
2.0
About andreasnij/laravel-sms-notification-channel

andreasnij/laravel-sms-notification-channel is a Laravel package for an sms notification channel for the php framework laravel.. It currently has 3 GitHub stars and 3.760 downloads on Packagist (latest version 2.0). Install it with composer require andreasnij/laravel-sms-notification-channel. Discover more Laravel packages by andreasnij or browse all Laravel packages to compare alternatives.

Last updated

Laravel SMS notification channel

Version

An SMS notification channel for the PHP framework Laravel.

Supported SMS gateways:

Installation

Add the package as a requirement to your composer.json:

$ composer require andreasnij/laravel-sms-notification-channel

If you want to use the 46elks, Cellsynt or Telenor SMS Pro gateway you also you need implementations of PSR-7: HTTP message interfaces, PSR-17: HTTP Factories and PSR-18: HTTP Client. A popular package for this is Guzzle. You can install it with:

$ composer require guzzlehttp/guzzle:^7.0 guzzlehttp/psr7:^2.0

You may choose to use any other implementations of the PSR interfaces though.

If you want to use the Twilio gateway you also need to install the Twilio SDK:

$ composer require twilio/sdk

If you want to use the Vonage gateway you also need to install the Vonage client:

$ composer require vonage/client-core

Next you need to publish the configuration file to your config directory:

$ php artisan vendor:publish --provider="LaravelSmsNotificationChannel\ServiceProvider" --tag="config"

Edit your sms.php configuration file to fit your application.

Usage example

class TestUser 
{
    use Notifiable;

    public string $phone_number = '46700000000';

    public function routeNotificationForSms(Notification $notification): ?string
    {
        return $this->phone_number;
    }
}

class TestNotification extends Notification
{
    public function via(mixed $notifiable): array
    {
        return ['sms'];
    }

    public function toSms(mixed $notifiable): string
    {
        return 'Test message';
    }
}

$user = new User();
$user->notify(new TestNotification());

You can also use this package to send sms manually (without notifications):

use AnSms\SmsTransceiverInterface;
use AnSms\Message\Message;

$smsTransceiver = app(SmsTransceiverInterface::class);

$message = Message::create('46700000000', 'Hello world!');
$smsTransceiver->sendMessage($message);

Author

Andreas Nilsson (https://github.com/andreasnij)

License

This software is licensed under the MIT License - see the LICENSE file for details.

Comments