Downloads
Stars
Version
This package makes it easy to send SMS notifications using different SMS provider with Laravel.
To install the PHP client library using Composer:
composer require shafimsp/laravel-sms-notification-channel
The package will automatically register itself.
You can optionally publish the config file with:
php artisan vendor:publish --provider="Shafimsp\SmsNotificationChannel\SmsServiceProvider" --tag="config"
This is the contents of the published config file:
return [
/*
|--------------------------------------------------------------------------
| The default SMS Driver
|--------------------------------------------------------------------------
|
| The default sms driver to use as a fallback when no driver is specified
| while using the SMS.
|
| Supported: "nexmo", "log", "null"
|
*/
'default' => env('SMS_DRIVER', 'log'),
/*
|--------------------------------------------------------------------------
| Log Channel
|--------------------------------------------------------------------------
|
| If you are using the "log" driver, you may specify the logging channel
| if you prefer to keep mail messages separate from other log entries
| for simpler reading. Otherwise, the default channel will be used.
|
*/
'log_channel' => env('SMS_LOG_CHANNEL'),
];
Set sms
channel in via
method on notification class
/**
* Get the notification's delivery channels.
*
* @param mixed $notifiable
* @return array
*/
public function via($notifiable)
{
return ['sms'];
}
and define a toSms method on the notification class.
/**
* Get the SMS representation of the notification.
*
* @param mixed $notifiable
* @return string
*/
public function toSms()
{
return 'Your message content goes here';
}
Or
/**
* Get the notification's delivery channels.
*
* @param mixed $notifiable
* @return string
*/
public function toSms()
{
return (new SmsMessage())
->content('Your message goes here');
}
If your SMS message will contain unicode characters, you should call the unicode method when constructing the SmsMessage instance:
/**
* Get the notification's delivery channels.
*
* @param mixed $notifiable
* @return string
*/
public function toSms()
{
return (new SmsMessage())
->content('Your message goes here')
->unicode();
}
If you would like to send some notifications from a phone number that is different from the phone number specified in your config/services.php file, you may use the from method on a SmsMessage instance:
/**
* Get the notification's delivery channels.
*
* @param mixed $notifiable
* @return string
*/
public function toSms()
{
return (new SmsMessage())
->content('Your message goes here')
->unicode();
}
When sending notifications via the sms
channel, you should define a routeNotificationForSms method on the entity:
/**
* Route notifications for the Nexmo channel.
*
* @param \Illuminate\Notifications\Notification $notification
* @return string
*/
public function routeNotificationForSms($notification)
{
return $this->phone;
}
\Shafimsp\SmsNotificationChannel\Facades\Sms::driver('nexmo')
->content("Message content goes here")
->to('MOBILE_NUMBER_TO_SENT_TO')
->send();
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
Laravel SMS Notification Channel is open-sourced software licensed under the MIT license.