andreasnij / laravel-sms-notification-channel
An SMS notification channel for the PHP framework Laravel.
Installs: 2 341
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 2
Forks: 0
Open Issues: 0
Requires
- php: >=8.2
- andreasnij/an-sms: ^1.1
- illuminate/contracts: ^10.0 || ^11.0
- illuminate/notifications: ^10.0 || ^11.0
- illuminate/support: ^10.0 || ^11.0
Requires (Dev)
- guzzlehttp/guzzle: ^7.4
- orchestra/testbench: ^9.0
- phpstan/phpstan: ^1.3
- phpunit/phpunit: ^10.0 || ^11.0
- squizlabs/php_codesniffer: ^3.6
- twilio/sdk: ^6.32
- vonage/client-core: ^4.0
Suggests
- twilio/sdk: Required to use the Twilio gateway
- vonage/client-core: Required to use the Vonage gateway
This package is auto-updated.
Last update: 2024-10-29 14:39:48 UTC
README
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.