avto-dev / smspilot-notifications-laravel
Notifications channel for SMS Pilot service
Installs: 6 850
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 2
Forks: 4
Open Issues: 2
Requires
- php: ^8.1
- ext-json: *
- guzzlehttp/guzzle: ~7.0
- illuminate/contracts: ~10.0 || ~11.0
- illuminate/notifications: ~10.0 || ~11.0
- illuminate/support: ~10.0 || ~11.0
Requires (Dev)
- laravel/laravel: ~10.0 || ~11.0
- mockery/mockery: ^1.6.5
- phpstan/phpstan: ^1.10.66
- phpunit/phpunit: ^10.5
README
Here's the latest documentation on Laravel Notifications System: https://laravel.com/docs/master/notifications
SMS Pilot notifications channel | For laravel
This package makes it easy to send notifications using SMS Pilot with Laravel 5.
Installation
Require this package with composer using the following command:
$ composer require avto-dev/smspilot-notifications-laravel "^2.0"
Installed
composer
is required (how to install composer).
You need to fix the major version of package.
Laravel 5.5 and above uses Package Auto-Discovery, so doesn't require you to manually register the service-provider. Otherwise you must add the service provider to the providers
array in ./config/app.php
:
'providers' => [ // ... AvtoDev\SmsPilotNotifications\SmsPilotServiceProvider::class, ],
If you wants to disable package service-provider auto discover, just add into your composer.json
next lines:
{ "extra": { "laravel": { "dont-discover": [ "avto-dev/smspilot-notifications-laravel" ] } } }
Setting up the SMS Pilot service
You need to set up SMS Pilot channel in config file ./config/services.php
:
<?php return [ // ... 'sms-pilot' => [ 'key' => env('SMS_PILOT_API_KEY'), 'sender_name' => env('SMS_PILOT_SENDER_NAME'), ], ];
And add into ./.env
file next lines:
SMS_PILOT_API_KEY=%your_api_key% SMS_PILOT_SENDER_NAME=%your_sender_name%
Where SMS_PILOT_API_KEY
is SMS Pilot authorization key (token) (try to get it on this page), SMS_PILOT_SENDER_NAME
- is sender name, which set in service dashboard (will be used as sender name by default).
Usage
Now you can use the channel in your via()
method inside the notification as well as send a push notification:
<?php use AvtoDev\SmsPilotNotifications\SmsPilotChannel; use AvtoDev\SmsPilotNotifications\Messages\SmsPilotMessage; class Notification extends \Illuminate\Notifications\Notification { /** * Get the notification channels. * * @param mixed $notifiable * * @return array|string */ public function via($notifiable) { return [SmsPilotChannel::class]; } /** * Get the SMS Pilot Message representation of the notification. * * @param mixed $notifiable * * @return SmsPilotMessage */ public function toSmsPilot($notifiable): SmsPilotMessage { return (new SmsPilotMessage) ->content('Some SMS notification message'); } }
<?php class Notifiable { use \Illuminate\Notifications\Notifiable; /** * Get route for 'SMS Pilot' notification. * * @param mixed $notifiable * * @return string */ public function routeNotificationForSmsPilot($notifiable): string { return '71112223344'; } }
Testing
For package testing we use phpunit
framework and docker-ce
+ docker-compose
as develop environment. So, just write into your terminal after repository cloning:
$ make build $ make latest # or 'make lowest' $ make test
Changes log
Changes log can be found here.
Support
If you will find any package errors, please, make an issue in current repository.
License
This is open-sourced software licensed under the MIT License.