SMS service provider for Laravel and Lumen. Uses SMS Client to enable sending SMS messages using the following drivers:
- nexmo
- clockwork
- textlocal
- twilio
- aws(requires installation of- aws/aws-sdk-php)
- mail(somewhat untested and may be too generic to be much use)
Also has the following drivers for testing purposes:
- log
- null
- requestbin
This package is only intended for Laravel 5.5 and up. Install it with the following command:
$ composer require matthewbdaly/laravel-smsThen publish the config file:
$ php artisan vendor:publishYou will need to select the service provider Matthewbdaly\LaravelSMS\LaravelSMSProvider. Then set your driver and any settings required in the .env file for your project:
SMS_DRIVER=nexmo
NEXMO_API_KEY=foo
NEXMO_API_SECRET=bar
CLOCKWORK_API_KEY=baz
TEXTLOCAL_API_KEY=baz
REQUESTBIN_PATH=foo
AWS_SNS_API_KEY=foo
AWS_SNS_API_SECRET=bar
AWS_SNS_API_REGION=baz
MAIL_SMS_DOMAIN=my.sms-gateway.com
TWILIO_ACCOUNT_ID=foo
TWILIO_API_TOKEN=bar
The installation process with Lumen is identical to that for Laravel, although if you wish to use the facade you will need to uncomment the appropriate section of bootstrap/app.php as usual.
Once the package is installed and configured, you can use the facade to send SMS messages:
use SMS;
$msg = [
    'to'      => '+44 01234 567890',
    'content' => 'Just testing',
];
SMS::send($msg);Or fetch it from the app:
$msg = [
    'to'      => '+44 01234 567890',
    'content' => 'Just testing',
];
$sms = app()['sms']
$sms->send($msg);Or resolve the interface Matthewbdaly\SMS\Contracts\Client:
$msg = [
    'to'      => '+44 01234 567890',
    'content' => 'Just testing',
];
$sms = app()->make('Matthewbdaly\SMS\Contracts\Client');
$sms->send($msg);Here we use the app() helper, but you'll normally want to inject it into a constructor or method of another class.