Advertisement
Guest User

Untitled

a guest
Sep 1st, 2017
543
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.90 KB | None | 0 0
  1. # Компонент для работы с уведомлениями.
  2.  
  3. Описание методов:
  4. ```php Notification::sms(void) ``` - Уведомляет класс что мы будем использовать, для отправки уведомлений. Параметров не принимает.
  5. ```php Notification::email(void) ``` - Уведомляет компонент что будем использовать email, для отправки уведомлений. Параметров не принимает.
  6. ```php Notification::setParams(array $params) ``` - Метод задает параметры соединения.
  7. Входные параметры: массив со значениями.
  8. Для смс следующий вид:
  9. ```php
  10. $params = [
  11. 'provider' => 'sms4b', // Пока работаем только с провайдером sms4b. Регистр написания провайдера не важен.
  12. 'login' => 'some_login', // Логин от ЛК sms4b
  13. 'password' => 'some_password' // Пароль от ЛК
  14. ]
  15. ```
  16.  
  17. Для email следующий вид:
  18. ```php
  19. $params = [
  20. 'login' => 'some_login', // Логин от почтового ящика
  21. 'password' => 'some_password' // Пароль от почтового ящика
  22. 'host' => 'smtp.gmail.com', // Хост почтового ящика
  23. 'type' => 'tls' // Тип соединения: обычно используется tls/smtp
  24. 'port' => '587' // Порт соединения, как правило для tls - 587, для smtp - 443
  25. ]
  26. ```
  27.  
  28. ```php Notification::getParamsFromDb(void) ``` - Метод берет параметры соединения из бд. В этом случае параметры будут взяты из таблицы {{%sms_settings}} или {{%email_settings}}. Будут выбраны те параметры у которых стоит флаг default.
  29.  
  30. ```php Notification::setRecipients(array $recipients) ``` - Метод назначает получателей сообщения.
  31. Входные параметры: Массив. Обычный одномерный массив вида:
  32. ```php
  33. ['79876543211', '+79876543211'] // Для смс массив номеров. (Код можно задать со знаком "+". Напр. "+7")
  34. ['email@email.ru', 'email@email.ru'] // Для email соответсвенно email.
  35. ```
  36.  
  37. ```php Notification::setFrom(string $from) ``` - Метод задает параметр, от кого отправлено смс/email.
  38.  
  39. ```php Notification::setSubject(string $subject) ``` - Метод задает тему письма. Только для email сообщений.
  40.  
  41. ```php Notification::setMessage(string $message) ``` - Метод задает тело письма.
  42.  
  43. ```php Notification::send(void) ``` - Получение информации о соотянии аккаунта. Ниже будет пример использования.
  44.  
  45. ```php Notification::getInfo(void) ``` - Отправка сообщения.
  46.  
  47. ### Примеры использования:
  48. #### - Отправка смс
  49. Параметры задаются вручную.
  50. ```php
  51. $notification = new \backend\components\notifications\Notification;
  52.  
  53. $result = $notification->sms()->setParams([
  54. 'provider' => 'Sms4b',
  55. 'login' => 'Mkrep',
  56. 'password' => '26020800'
  57. ])->setRecipients(['+79876543211'])->setFrom('mkrep.ru')->setMessage('Тестовое сообщение')->send();
  58. ```
  59.  
  60. #### - Отправка смс
  61. Параметры берутся из бд
  62.  
  63. ```php
  64. $notification = new \backend\components\notifications\Notification;
  65.  
  66. $result = $notification->sms()->getParamsFromDb()
  67. ->setRecipients(['+79876543211'])->setMessage('Тестовое сообщение')->send();
  68. ```
  69.  
  70. #### - Получение информации о аккаунте.
  71.  
  72. ```php
  73. $notification = new \backend\components\notifications\Notification;
  74.  
  75. $notification = $notification->sms()->setParams([
  76. 'provider' => 'Sms4b',
  77. 'login' => 'Mkrep',
  78. 'password' => '26020800',
  79. ]);
  80.  
  81. $params = $notification->getInfo();
  82. ```
  83.  
  84. В результате (в переменной ```php $params ```) получим объект со следующими свойствами:
  85. ```php stdClass::Result ``` - Результат запроса. Обычно число, или код ошибки.
  86. ```php stdClass::Rest ``` - Баланс аккаунта.
  87. ```php stdClass::Addresses ``` - Список sms‑имен отправителя, разделенных последовательностью "конец строки" (CR LF). Не более 63 имен и номеров.
  88. ```php stdClass::AddrMask ``` - Битовая маска для указания позиции номеров, на которые возможно получение входящих sms, в списке Addresses. Нулевое значение означает отсутствие возможности приема sms. Младший бит соответствует первому имени в списке, старший (не считая знака) – 63му. Отрицательное значение указывает на возможность принимать sms, когда позиция номера среди sms‑имен превышает 63.
  89. ```php stdClass::UTC ``` - Текущее время на сервере sms.
  90. ```php stdClass::Duration ``` - Предел длительности полного периода доставки, в часах
  91. ```php stdClass::Limit ``` - Предел для указания окончания доставки, в часах от текущего времени.
  92.  
  93. #### - Отправка email
  94. Параметры задаются вручную
  95. ```php
  96. $notification = new \backend\components\notifications\Notification;
  97.  
  98. $result = $notification->email()->setParams([
  99. 'login' => 'some_email@gmail.com',
  100. 'password' => 'some_pass',
  101. 'host' => 'smtp.gmail.com',
  102. 'type' => 'tls',
  103. 'port' => '587'
  104. ])->setMessage('Привет')->setFrom('some_email@gmail.com')->setSubject('Тема!')
  105. ->setRecipients(['some_email@yandex.ru', 'some_email@mail.ru'])->send();
  106. ```
  107.  
  108. #### - Отправка email
  109. Параметры берутся из бд.
  110.  
  111. ```php
  112. $notification = new \backend\components\notifications\Notification;
  113.  
  114. $result = $notification->email()->getParamsFromDb()->setMessage('Привет')
  115. ->setFrom('some_email@gmail.com')->setSubject('Тема!')
  116. ->setRecipients(['some_email@yandex.ru', 'some_email@mail.ru'])->send();
  117. ```
  118.  
  119. ### Логи:
  120. Для смс
  121. ```console/runtime/logs/sms.log ```
  122.  
  123. Для email
  124. ```console/runtime/logs/email.log ```
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement