В данной документации не приводится полный список методов для классов, а лишь основаня часть. Остальные же имеют пояснения в исходном коде классов модуля.
В модуле имеется ряд классов, для работы с модулем.
Класс для работы с ошибками:
\Bxmaker\SmsNotice\Error
Класс используемый для возвращения результата выполнения операций
\Bxmaker\SmsNotice\Result
Основной класс для работы с модулем - отправка одиночных смс или по шаблону
\Bxmaker\SmsNotice\Manager
Работа с сообщениями отправленными, получение статуса отправки, сервиса через который отправлялось сообщение, его текст, номер телефона сайт
\Bxmaker\SmsNotice\ManagerTable
Работа с доступными сервисами для отправки смс, получение списка, подключение нужного сервиса
\Bxmaker\SmsNotice\Service
Сохранение добавление. удаление сервиса из базы данных, в которой хранятся данные для подключения к сервису и отправки смс
\Bxmaker\SmsNotice\ServiceTable
Добавление, удаление, редактирование шаблонов смс
\Bxmaker\SmsNotice\TemplateTable
Добавление, удаление, редактирование типа шаблона
\Bxmaker\SmsNotice\TypeTable
Добавление, удаление, редактирование привязки шаблона к сайту
\Bxmaker\SmsNotice\SiteTable
Агент для проверки статусов сообщений, удаление старых смс
\Bxmaker\SmsNotice\Agent
Обработчик для реагирования на заданные события
\Bxmaker\SmsNotice\Handler
Класс \Bxmaker\SmsNotice\Manager
используется для отправки одиночных смс, отправки смс по шаблону, инициализации конкретного сервиса, для отправки смс через его шлюзы, получения баланса, проверки валидности номера и так далее, это основной класс для работы с модулем.
$oManager = \BXmaker\SmsNotice\Manager::getInstance();
Метод send()
используется для отправки одиночных смс, возвращает объек класса Result
Парамтеры:
$result = $oManager->send('79991112233', 'какой-то текст для теста отправки в смс');
/* если смс успешно отправлено */
if($result->isSuccess())
{
/* Получение статуса отправки, подробнее в описании класса \Bxmaker\SmsNotic\Result */
$statusCode = $result->getResult();
}
/* иначе, если есть ошибки */
else
{
/* вывод сообщений об ошибке, ошибках */
echo implode(', ', $result->getErrorMessages();
}
Метод sendTemplate
отправляет все активные шаблоны смс заданного типа, возвращает объект класса Result
Парамтеры:
$result = $oManager->sendTemplate('ORDER_NEW', array(
'PHONE' => '79991112233',
'ORDER_ID' => '10268',
'PRICE' => '5 536'
));
/* результат отправки типа шаблонов всегда успешный, так как содержит детальную информацию по отправке каждого из шаблонов */
if($result->isSuccess())
{
/* можно получить сразу полный массив подробной информации */
$data = $result->getMore();
/* либо по отделльности каждый из 3-х */
/* всего найдено и обработано шаблонов */
$count = $result->getMore('count');
/* если ошибок нет, то $errors == null, иначе массив ошибок (объект \Bxmaker\SmsNotice\Error) полученных при отправке каждого шаблона */
$errors = $result->getMore('errors');
if(is_null($errors))
{
/* ошибок нет */
}
else
{
foreach($errors as $obError)
{
/* вывод ошибок */
echo implode(', ', $obError->getErrorMessages()) . '<br>';
}
}
/* и соответственно массив результатов (объект \Bxmaker\SmsNotice\Result)*/
$results = $result->getMore('results');
foreach($results as $obResult)
{
/* статус отправки */
$statusCode = $obResult->getResult();
/* больше информации */
$arDataItem = $obResult->getMore();
echo 'На номер: ' . $arDataItem['phone'] . ', было отправлено сообщение - ' . $arDataItem['text'] . '<br>';
}
}
Для получения баланса существует метод getBalance()
, который возвращает объект класса Result
с информацией о балансе на аккаунте (подключенного в данный момент сервиса, подключается автоматически активный при инициализации) или ошибки возникшие.
$oResult = $oManager->getBalance();
if($oResult->isSuccess())
{
echo 'Баланс: ' . $oResult->getResult();
}
else
{
/* вывод сообщений об ошибке, ошибках */
echo implode(', ', $result->getErrorMessages());
}
Метод getPreparePhone()
используется для подготовки номера телефона для использования, убираются все символы кроме цифр, заменяются коды страны и тд.
/* выведет 79991112233 */
echo $oManager->getPreparePhone('8(999)111-22_33');
Класс \Bxmaker\SmsNotice\Result
используется для возвращения результата выполнения того или иного действия.
$oResult = new \Bxmaker\SmsNotice\Result('Здесь какой то результат, например статус отправки смс');
/* или в случае наличия ошибки, можно указать только текст ошибки, а можно и код ошибки, дополнительную информацию по ошибке */
$oResult = new \Bxmaker\SmsNotice\Result(new \Bxmaker\SmsNotice\Error('текст ошибки'));
В экземпляре объекта можно установить значение результирующее как сразу, при инициализации, так и после используя метод setResult()
$oResult->setResult('результат, например код статуса отправки смс');
Также помимо установки результат, можно отметить в любой момент что появилась ошибка, используя метод setError()
$oResult->setError(new \Bxmaker\SmsNotice\Error('текст', 'код', array('больше' => 'информации')));
Также к результату можно добавить дополнительную информацию, используя метод setMore()
$oResult->setMore('ключ', 'значение');
Для проверки наличия ошибок используется метод isSuccess()
if($oResult->isSuccess())
{
/* ошибок нет */
}
else
{
/* ошибки есть */
}
Для получения результата используется метод getResult()
$oResult->getResult();
Для получения дополнительной информации - getMore()
. По умолчанию возвращается весь масси допольнительных данных. Также можно получить сразу значени по ключу.
$oResult->getMore();
$oResult->getMore('phone');
Для получения ошибок используется метод getErrors()
$arErrors = $oResult->getErrors();
foreach($arErrors as $error)
{
$error->getMessage();
}
Также можно поучить сразу массив с сообщениями об ошибках - getErrorMessages()
echo implode(', <br> ', $oResult->getErrorMessages());
Класс \Bxmaker\SmsNotice\Error
используется для стандартизации вывода ошибок, в результате в качестве ошибки возвращается экземпляр класса имеющий всего 3 метода.
Для получения текста ошибки существует метод getMessage()
echo $oError->getMessage();
Получение кода ошибки - getCode()
echo $oError->getCode();
Получение массива с дополнительной информацией getMore()
echo '<pre>';
print_r($oError->getMore());
echo '</pre>';