This is a PHP library for Sms Services Integration. This library supports PHP 8.0+
.
For PHP integration you can use daniyal2959/persian-sms package.
This packages works with multiple drivers, and you can create custom drivers if you can't find them in the current drivers list (below list).
Help me to add the services below by creating pull requests
- farazsms.com
- sms.ir
- mellipayamak.com
- farapayamak.ir
- ...
All services that work with ippanel can used default service
ippanel
you can create your own custom drivers if it's not exists in the list, read the
Create custom drivers
section.
Via Composer
$ composer require daniyal2959/persian-sms
Just include library's autoload.php
file in your code
include_once 'vendor/autoload.php'
There is not any config file in this package. so you can set settings for your sms service provider in your code.
available methods:
driver
: set the drivertext
: set the message to send without patternpatten
: set your pattern codedata
: set array of data patternto
: set array of numbers receiversfrom
: set sender numbersend
: send your sms and return response as json or plain string
Method | driver | text | pattern | data | to | from | credential | send |
---|---|---|---|---|---|---|---|---|
Parameter | $key | $text | $pattern_code | $data | $numbers | $number | $credentials | $asJson |
Type | string | string | string | array | array | string | array | boolean |
Required | * | * | * | * | * |
$apiKey = '<YOUR_API_KEY>';
$sms = new SMS($apiKey);
$response = $sms->driver('kavenegar')
->text('<MESSAGE_TO_SEND>')
->from('<SERVICE_PROVIDER_NUMBER>')
->to('<ARRAY_OF_PHONE_NUMBERS>')
->send();
$apiKey = '<YOUR_API_KEY>';
$sms = new SMS($apiKey);
$response = $sms->driver('kavenegar')
->pattern('<YOUR_PATTERN_NAME>')
->data('<ARRAY_OF_PATTERN_VALUES>') #E.g:['%token' => '1234']
->from('<SERVICE_PROVIDER_NUMBER>')
->to('<ARRAY_OF_PHONE_NUMBERS>')
->send();
$apiKey = '<YOUR_API_KEY>';
$sms = new SMS($apiKey);
$response = $sms->driver('ippanel')
->text('<MESSAGE_TO_SEND>')
->from('<SERVICE_PROVIDER_NUMBER>')
->to('<ARRAY_OF_PHONE_NUMBERS>')
->send();
$apiKey = '<YOUR_API_KEY>';
$sms = new SMS($apiKey);
$response = $sms->driver('ippanel')
->pattern('<YOUR_PATTERN_CODE>')
->data('<ARRAY_OF_PATTERN_VALUES>')
->from('<SERVICE_PROVIDER_NUMBER>')
->to('<ARRAY_OF_PHONE_NUMBERS>')
->send();
You can create your custom driver with one step. this step is:
Created a class: Sms\Driver\MyDriver
.
namespace Sms\Driver;
use Sms\Contract\IDriver;
use Sms\Driver;
class MyDrive extends Driver implements IDriver
{
const BASE_URL = '';
/**
* @return void
*/
public function __construct()
{
$this->client = new Http(self::BASE_URL, 30, []);
}
/**
* @return bool|mixed|string
*/
public function sendPattern()
{
// TODO: Implement send pattern code for current service provider
}
/**
* @param $text
* @return bool|mixed|string
*/
public function message($text)
{
// TODO: Implement send message code for current service provider
}
/**
* @return void
*/
public function setCredential()
{
// TODO: Implement set credential code for current service provider
}
}
If you discover any security related issues, please email daniyal.s.2959@gmail.com instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.