kagatan / sms-ukraine
Send sms from SmsUkraine
This package is auto-updated.
Last update: 2025-03-15 06:25:24 UTC
README
Канал уведомлений для сервиса "SMS Ukraine"
Используя данный пакет вы сможете легко интегрировать SMS уведомления в ваше Laravel-приложение, для отправки которых используется сервис "SMS Ukraine".
Установка
Для установки данного пакета выполните в терминале следующую команду:
$ composer require kagatan/sms-ukraine
Для этого необходим установленный
composer
. Для его установки перейдите по данной ссылке.
Если вы используете Laravel версии 5.5 и выше, то сервис-провайдер данного пакета будет зарегистрирован автоматически. В противном случае вам необходимо самостоятельно зарегистрировать сервис-провайдер в секции providers
файла ./config/app.php
:
'providers' => [ // ... Kagatan\SmsUkraine\SmsUkraineServiceProvider::class, ]
Добавим фасад:
'aliases' => [ ... 'SmsUkraine' => Kagatan\SmsUkraine\Facades\SmsUkraine::class ]
Добавим в файл config/services.php
:
// config/services.php ... 'sms-ukraine' => [ 'key' => function_exists('env') ? env('SMSUKRAINE_KEY', '') : '', 'login' => function_exists('env') ? env('SMSUKRAINE_LOGIN', '') : '', 'password' => function_exists('env') ? env('SMSUKRAINE_PASSWORD', '') : '', 'from' => function_exists('env') ? env('SMSUKRAINE_FROM', '') : '', ], ...
Для публикации провайдера:
php artisan vendor:publish --provider="Kagatan\SmsUkraine\SmsUkraineServiceProvider"
Настройка
После установки вам необходимо изменить файл ./.env
добавив ключи
SMSUKRAINE_KEY=xxxxxxxxxxxxxxxxxxxxxx SMSUKRAINE_FROM=SENDER-NAME
Если хотите использовать связку логин/пароль то добавляем следующие ключи:
SMSUKRAINE_LOGIN=xxxxx SMSUKRAINE_PASSWORD=xxxxx SMSUKRAINE_FROM=SENDER-NAME
Upgrading
composer update kagatan/sms-ukraine
Использование
Базовый пример отправки SMS уведомлений с использованием функционала нотификаций в Laravel-приложениях:
Доступные к использованию методы у объекта SmsUkraineMessage:
Имя метода | Описание |
---|---|
from() |
Имя отправителя (опционально) |
to() |
Номер телефона получателя (опционально) |
content() |
Текст сообщения |
sendAt() |
Дата доставки (опционально) |
key() |
API ключ, для переопределения параметров из config(опционально) |
login() |
API логин, для переопределения параметров из config(опционально) |
password() |
API пароль, для переопределения параметров из config(опционально) |
toJson() |
Обьект на выходе в JSON |
toArray() |
Объект на выходе в массиве |
Пример класса оповещения:
<?php use Illuminate\Notifications\Notification; use Kagatan\SmsUkraine\SmsUkraineChannel; use Kagatan\SmsUkraine\SmsUkraineMessage; /** * Notification object. */ class InvoicePaid extends Notification { /** * Get the notification channels. * * @param mixed $notifiable * * @return array|string */ public function via($notifiable) { return [SmsUkraineChannel::class]; } /** * Get the SMS Ukraine Message representation of the notification. * * @param mixed $notifiable * * @return SmsUkraineMessage */ public function toSmsUkraine($notifiable) { return SmsUkraineMessage::create() ->content('Some SMS notification message'); } }
В своей нотифицируемой моделе обязательно добавьте метод routeNotificationForSmsUkraine()
, который возвращает номер телефона или массив телефонных номеров.
<?php namespace App; use Illuminate\Database\Eloquent\Model; use Illuminate\Notifications\Notifiable; class User extends Model { use Notifiable; /** * Route notifications for the SmsUkraine channel. * * @param $notifiable * @return string */ public function routeNotificationForSmsUkraine($notifiable) { return $this->phone; } }
Пример c использованием Notifiable Trait:
$user->notify(new InvoicePaid());
Пример c использованием Notification Facade:
Notification::send($users, new InvoicePaid());
Пример отправки SMS с использованием фасадов(без использования Notification):
<?php use Kagatan\SmsUkraine\Facades\SmsUkraine; use Kagatan\SmsUkraine\SmsUkraineMessage; public function test(){ $message = SmsUkraineMessage::create() ->content("Example sending SMS.") ->to("380987654210") ->from("WiFi-POINT") ->toArray(); $id = SmsUkraine::send($message); echo $id; }
Лицензирование
Код данного пакета распространяется под лицензией MIT.