PHP code example of hooman-mirghasemi / laravel-iran-sms
1. Go to this page and download the library: Download hooman-mirghasemi/laravel-iran-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/ */
hooman-mirghasemi / laravel-iran-sms example snippets
// At the top of the file.
use HoomanMirghasemi\Sms\Facades\Sms;
...
Sms::to('+989121234567')->message('your sms text')->send();
//Also you can set driver in run time:
Sms::driver('magfa')->to('+989121234567')->message('your sms text')->send();
// At the top of the file.
use HoomanMirghasemi\Sms\Channels\SmsChannel;
use HoomanMirghasemi\Sms\Contracts\Message\Message;
...
public function __construct(public SomeModel $someModel)
{
$this->via = SmsChannel::class;
}
public function toSms(User $notifiable)
{
$smsMessage = 'make your sms text ';
// only if using kavehnegar set the pattern name
$pattern = 'kavenagarMyPatternName';
$message = new Message($smsMessage);
$message->useTemplateIfSupports(
$pattern,
[
'token1' => 'test',
'token10' => $notifiable->name,
'token20' => $this->family
]
);
return Sms::to($notifiable->mobile)
->message($message);
}
namespace App;
use HoomanMirghasemi\Sms\Abstracts\Driver;
class MyCustomDriver extends Driver
{
public static bool $successSend = true;
public function __construct(protected array $settings)
{
$this->from = data_get($this->settings, 'from');
}
public function send(): bool
{
// write api of sending sms by your custom provider
return parent::send();
}
public function getBalance(): string
{
// write api of getting account balance from your custom provider
return $balance;
}
}
$smsManager = app('sms');
$smsManager->extend('myCustomDriver', function ($app) {
$setting = ['from' => '22336'];
return new MyCustomDriver($setting);
});
// or using laravel ioc
$this->app->bind(MyCustomDriver::class, function () {
$setting = ['from' => '22336'];
return new MyCustomDriver($config);
});
$smsManager->extend('myCustomDriver', function ($app) {
return $this->container->make(MyCustomDriver::class);
});
// or you can publish config file and add setting of your driver into it. then:
$this->app->bind(MyCustomDriver::class, function () {
$config = config('sms.drivers.mycustomdriver') ?? [];
return new MyCustomDriver($config);
});
$smsManager->extend('myCustomDriver', function ($app) {
return $this->container->make(MyCustomDriver::class);
});