glsv / yii2-smssender
SMS sender via different SMS providers with log entires to the database.
Installs: 7
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:yii2-extension
Requires
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- 33evgenyy33/yii2-smsaerov2: dev-master
- yiisoft/yii2: ~2.0.0
Requires (Dev)
- phpunit/phpunit: ^5.7
- vlucas/phpdotenv: ^4.1
This package is auto-updated.
Last update: 2025-03-10 16:34:51 UTC
README
Компонент-обертка над провайдерами отправки SMS, с логированием в БД и хелперами для построения интерфейса просмотра логов.
Удобен для следущей ситуации:
- Осуществляется рассылка по большому числу получателей (подписчики, рекламодатели и т.п)
- Необходим интерфейс просмотра логов отправки
- Требуется независимость от конкретного sms-провайдера
Установка
composer require glsv/yii2-smssender "*"
Использование
$smsSender->send($phone, $message, SendMethod::METHOD_MANUAL);
Сообщение будет отправлено через подключенный SMS-провайдер, а результат отправки (успешный или нет) залогирован.
Настройка
- Конфигурация sms-провайдера
- Настроить внедрение зависимостей
- Настроить и выполнить миграций
- Добавить обработка callback sms-провайдера (опционально)
1. Конфигурация sms-провайдера
Поместить конфигурацию sms-провайдера в params.php. На примере SmsAeroProvider
'smsAeroProvider' => [
'user' => 'login',
'api_key' => 'api_key',
'sign' => 'sign',
'channel' => \glsv\smssender\providers\smsAero\SmsAeroProvider::CHANNEL_DIRECT,
'callbackUrl' => 'https://site.com/sms-aero/callback/update-status',
'debug_mode' => false,
]
2. BootstrapComponent для внедрения зависимостей
use yii\base\BootstrapInterface;
use glsv\smssender\providers\smsAero\SmsAeroProvider;
use glsv\smssender\interfaces\SmsProviderInterface;
use glsv\smssender\interfaces\SmsSenderInterface;
use glsv\smssender\SmsSender;
class BootstrapComponent implements BootstrapInterface
{
public function bootstrap($app)
{
$container = \Yii::$container;
$config = \Yii::$app->params['smsAeroProvider'];
$container->set(SmsProviderInterface::class, SmsAeroProvider::class, [$config]);
$container->setSingleton(SmsSenderInterface::class, SmsSender::class);
}
}
Добавить BootstrapComponent в main.php
'bootstrap' => [\common\components\BootstrapComponent::class],
3. Миграции
Выполнить миграции по команде
php yii migrate-sms
4. Обработка callback sms-провайдера
Если нужно обрабатывать callback от sms-провайдера, то добавить модуль соответствующего провайдера в конфигурацию приложения. Например, для callback следующего формата:
https://site.com/sms-aero/callback/update-status
добавить:
'modules' => [
'sms-aero' => [
'class' => 'glsv\smssender\providers\smsAero\module\Module',
'controllerNamespace' => 'glsv\smssender\providers\smsAero\module\controllers',
],
],
5. Интерфейс просмотра логов
Базовый интерфейс просмотра логов подключается через модуль в конфигурации приложения.
'modules' => [
'sms-sender' => [
'class' => 'glsv\smssender\module\Module',
'controllerNamespace' => 'glsv\smssender\module\controllers',
'defaultRoute' => 'sms-log/index'
],
]
Доступ будет по адресу: http://your-site.com/sms-sender/
Как правило, и сам интерфейс и контроллер требуют индивидуальной настройки. Подробнее можно прочитать в описании.