Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Компонент для работы с уведомлениями.
- Описание методов:
- ```php Notification::sms(void) ``` - Уведомляет класс что мы будем использовать, для отправки уведомлений. Параметров не принимает.
- ```php Notification::email(void) ``` - Уведомляет компонент что будем использовать email, для отправки уведомлений. Параметров не принимает.
- ```php Notification::setParams(array $params) ``` - Метод задает параметры соединения.
- Входные параметры: массив со значениями.
- Для смс следующий вид:
- ```php
- $params = [
- 'provider' => 'sms4b', // Пока работаем только с провайдером sms4b. Регистр написания провайдера не важен.
- 'login' => 'some_login', // Логин от ЛК sms4b
- 'password' => 'some_password' // Пароль от ЛК
- ]
- ```
- Для email следующий вид:
- ```php
- $params = [
- 'login' => 'some_login', // Логин от почтового ящика
- 'password' => 'some_password' // Пароль от почтового ящика
- 'host' => 'smtp.gmail.com', // Хост почтового ящика
- 'type' => 'tls' // Тип соединения: обычно используется tls/smtp
- 'port' => '587' // Порт соединения, как правило для tls - 587, для smtp - 443
- ]
- ```
- ```php Notification::getParamsFromDb(void) ``` - Метод берет параметры соединения из бд. В этом случае параметры будут взяты из таблицы {{%sms_settings}} или {{%email_settings}}. Будут выбраны те параметры у которых стоит флаг default.
- ```php Notification::setRecipients(array $recipients) ``` - Метод назначает получателей сообщения.
- Входные параметры: Массив. Обычный одномерный массив вида:
- ```php
- ['79876543211', '+79876543211'] // Для смс массив номеров. (Код можно задать со знаком "+". Напр. "+7")
- ['email@email.ru', 'email@email.ru'] // Для email соответсвенно email.
- ```
- ```php Notification::setFrom(string $from) ``` - Метод задает параметр, от кого отправлено смс/email.
- ```php Notification::setSubject(string $subject) ``` - Метод задает тему письма. Только для email сообщений.
- ```php Notification::setMessage(string $message) ``` - Метод задает тело письма.
- ```php Notification::send(void) ``` - Получение информации о соотянии аккаунта. Ниже будет пример использования.
- ```php Notification::getInfo(void) ``` - Отправка сообщения.
- ### Примеры использования:
- #### - Отправка смс
- Параметры задаются вручную.
- ```php
- $notification = new \backend\components\notifications\Notification;
- $result = $notification->sms()->setParams([
- 'provider' => 'Sms4b',
- 'login' => 'Mkrep',
- 'password' => '26020800'
- ])->setRecipients(['+79876543211'])->setFrom('mkrep.ru')->setMessage('Тестовое сообщение')->send();
- ```
- #### - Отправка смс
- Параметры берутся из бд
- ```php
- $notification = new \backend\components\notifications\Notification;
- $result = $notification->sms()->getParamsFromDb()
- ->setRecipients(['+79876543211'])->setMessage('Тестовое сообщение')->send();
- ```
- #### - Получение информации о аккаунте.
- ```php
- $notification = new \backend\components\notifications\Notification;
- $notification = $notification->sms()->setParams([
- 'provider' => 'Sms4b',
- 'login' => 'Mkrep',
- 'password' => '26020800',
- ]);
- $params = $notification->getInfo();
- ```
- В результате (в переменной ```php $params ```) получим объект со следующими свойствами:
- ```php stdClass::Result ``` - Результат запроса. Обычно число, или код ошибки.
- ```php stdClass::Rest ``` - Баланс аккаунта.
- ```php stdClass::Addresses ``` - Список sms‑имен отправителя, разделенных последовательностью "конец строки" (CR LF). Не более 63 имен и номеров.
- ```php stdClass::AddrMask ``` - Битовая маска для указания позиции номеров, на которые возможно получение входящих sms, в списке Addresses. Нулевое значение означает отсутствие возможности приема sms. Младший бит соответствует первому имени в списке, старший (не считая знака) – 63му. Отрицательное значение указывает на возможность принимать sms, когда позиция номера среди sms‑имен превышает 63.
- ```php stdClass::UTC ``` - Текущее время на сервере sms.
- ```php stdClass::Duration ``` - Предел длительности полного периода доставки, в часах
- ```php stdClass::Limit ``` - Предел для указания окончания доставки, в часах от текущего времени.
- #### - Отправка email
- Параметры задаются вручную
- ```php
- $notification = new \backend\components\notifications\Notification;
- $result = $notification->email()->setParams([
- 'login' => 'some_email@gmail.com',
- 'password' => 'some_pass',
- 'host' => 'smtp.gmail.com',
- 'type' => 'tls',
- 'port' => '587'
- ])->setMessage('Привет')->setFrom('some_email@gmail.com')->setSubject('Тема!')
- ->setRecipients(['some_email@yandex.ru', 'some_email@mail.ru'])->send();
- ```
- #### - Отправка email
- Параметры берутся из бд.
- ```php
- $notification = new \backend\components\notifications\Notification;
- $result = $notification->email()->getParamsFromDb()->setMessage('Привет')
- ->setFrom('some_email@gmail.com')->setSubject('Тема!')
- ->setRecipients(['some_email@yandex.ru', 'some_email@mail.ru'])->send();
- ```
- ### Логи:
- Для смс
- ```console/runtime/logs/sms.log ```
- Для email
- ```console/runtime/logs/email.log ```
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement