1. Go to this page and download the library: Download tzsk/sms library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
tzsk / sms example snippets
// Eg. if you want to use SNS.
'default' => 'sns',
# On the top of the file.
use Tzsk\Sms\Facades\Sms;
////
# In your Controller.
Sms::send("this message", function($sms) {
$sms->to(['Number 1', 'Number 2']); # The numbers to send to.
});
# OR...
Sms::send("this message")->to(['Number 1', 'Number 2'])->dispatch();
# If you want to use a different driver.
Sms::via('gateway')->send("this message", function($sms) {
$sms->to(['Number 1', 'Number 2']);
});
# OR...
Sms::via('gateway')->send("this message")->to(['Number 1', 'Number 2'])->dispatch();
# Here gateway is explicit : 'twilio' or 'textlocal' or any other driver in the config.
# The numbers can be a single string as well.
# If you are not a Laravel's facade fan, you can use sms helper:
sms()->send("this message", function($sms) {
$sms->to(['Number 1', 'Number 2']); # The numbers to send to.
});
sms()->send("this message")->to(['Number 1', 'Number 2'])->dispatch();
sms()->via('gateway')->send("this message", function($sms) {
$sms->to(['Number 1', 'Number 2']);
});
sms()->via('gateway')->send("this message")->to(['Number 1', 'Number 2'])->dispatch();
# Change the from|sender|sim value with from() option:
sms()->via('gateway')->send("this message")->from('Your From Number | Sender Value | Sim Value ')->to(['Number 1', 'Number 2'])->dispatch();
# Sending argument and pattern code in pattern drivers such as melipayamakpattern and farazsmspattern.
#Note: The first argument is always known as the pattern code.
sms()->via('melipayamakpattern')->send("patterncode=123 \n arg1=name \n arg2=family")->to(['Number 1', 'Number 2'])->dispatch();
namespace App\Notifications;
use Tzsk\Sms\Builder;
use Illuminate\Bus\Queueable;
use Tzsk\Sms\Channels\SmsChannel;
use Illuminate\Notifications\Notification;
use Illuminate\Contracts\Queue\ShouldQueue;
class InvoicePaid extends Notification
{
use Queueable;
/**
* Get the notification channels.
*
* @param mixed $notifiable
* @return array|string
*/
public function via($notifiable)
{
return [SmsChannel::class];
}
/**
* Get the repicients and body of the notification.
*
* @param mixed $notifiable
* @return Builder
*/
public function toSms($notifiable)
{
return (new Builder)->via('gateway') # via() is Optional
->send('this message')
->to('some number');
}
}
$builder = (new Builder)->via('gateway') # via() is Optional
->send('this message')
->to('some number');
Sms::send($builder);
# OR...
$builder = (new Builder)->send('this message')
->to(['some number']);
Sms::via('gateway')->send($builder);
namespace App\Packages\SMSDriver;
use Tzsk\Sms\Contracts\Driver;
class MyDriver extends Driver
{
/**
* You Should implement these methods:
*
* 1. boot() -> (optional) Initialize any variable or configuration that you need.
* 2. send() -> Main method to send messages.
*
* Note: settings array will be automatically assigned in Driver class' constructor.
*
* Example Given below:
*/
/**
* @var mixed
*/
protected $client;
protected function boot() : void
{
$this->client = new Client(); # Guzzle Client for example.
}
/**
* @return object Ex.: (object) ['status' => true, 'data' => 'Client Response Data'];
*/
public function send()
{
$this->recipients; # Array of Recipients.
$this->body; # SMS Body.
# Main logic of Sending SMS.
...
}
}