clevyr / laravel-twilio-channel
A Laravel Notification channel for Twilio
Installs: 23 541
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 6
Forks: 0
Open Issues: 3
pkg:composer/clevyr/laravel-twilio-channel
Requires
- php: ^8.0
- spatie/laravel-package-tools: ^1.0
- twilio/sdk: ^8.0
Requires (Dev)
- larastan/larastan: ^3.0
- laravel/pint: ^1.0
- nunomaduro/collision: ^8.0
- orchestra/testbench: ^9.0
- pestphp/pest: ^3.0
- pestphp/pest-plugin-laravel: ^3.0
- phpstan/extension-installer: ^1.0
- phpstan/phpstan-deprecation-rules: ^2.0
- phpstan/phpstan-phpunit: ^2.0
- phpunit/phpunit: ^11.0
- spatie/laravel-ray: ^1.0
This package is auto-updated.
Last update: 2025-10-13 07:08:39 UTC
README
A Laravel Notification channel for sending SMS messages with Twilio.
Installation
You can install the package via composer:
composer require clevyr/laravel-twilio-channel
Configure an account on Twilio, and then add the following env vars:
TWILIO_SID=
TWILIO_AUTH_TOKEN=
TWILIO_PHONE_NUMBER=
Next, publish the config file with:
php artisan vendor:publish --provider="Clevyr\LaravelTwilioChannel\LaravelTwilioChannelServiceProvider"
This is the contents of the published config file (without descriptive comments):
return [ 'sid' => env('TWILIO_SID'), 'auth_token' => env('TWILIO_AUTH_TOKEN'), 'phone_number' => env('TWILIO_PHONE_NUMBER'), ];
Usage
In your Laravel notifications:
- Implement the
TwilioNotificationinterface - Add the
TwilioChannelto yourviareturn array value - Build a
toTwiliofunction that returns aTwilioMessageobject
<?php namespace App\Notifications; use Clevyr\LaravelTwilioChannel\Channels\TwilioChannel; use Clevyr\LaravelTwilioChannel\Contracts\TwilioNotification; use Clevyr\LaravelTwilioChannel\Messages\TwilioMessage; use Illuminate\Notifications\Notification; class MyNotification extends Notification implements TwilioNotification { /** * Get the notification's delivery channels. * * @param mixed $notifiable * @return array */ public function via($notifiable) { return [TwilioChannel::class]; } /** * Get the twilio representation of the notification. * * @param mixed $notifiable * @return \Clevyr\LaravelTwilioChannel\Messages\TwilioMessage */ public function toTwilio($notifiable) { return (new TwilioMessage) ->line('Your first line.') ->line('A second line, with a break between the last line.'); }
By default, TwilioChannel will use your notifiable's phone_number field
to send an SMS message, which must be in a format such as 8884445555.
Overriding the Notifiable Phone Number Field
To override the phone_number and use a different field, set the
twilioPhoneNumberField instance variable in your notifiable class:
class User extends Authenticatable { public $twilioPhoneNumberField = 'primary_phone_number'; // }
On-Demand Notifications
If you wish to send an on-demand notification, and not use a notifiable object
at all, you can do that:
use Illuminate\Support\Facades\Notification;
Notification::route('twilio', '5555555555')
->notify(new InvoicePaid($invoice));
Testing
composer test
Linting
composer analyse
Formatting w/ Laravel Pint
composer format
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.