matperez/yii2-sms-sender

Yii2 SMS 发送器

1.3.0 2017-02-04 16:21 UTC

This package is not auto-updated.

Last update: 2024-09-29 02:44:29 UTC


README

Build Status Coverage Status

Yii2 SMS 发送器

安装

安装此扩展的首选方式是通过 composer.

您可以选择运行

php composer.phar require --prefer-dist matperez/yii2-sms-sender

或者在您的 composer.json 文件的 require 部分添加

"matperez/yii2-sms-sender": "*"

开发环境

'components' = [
  'sms' => [
    'viewPath' => '@app/sms',
    'class' => \matperez\yii2smssender\components\Sender::class,
    'transportConfig' => [
      'class' => \matperez\yii2smssender\transports\FileTransport::class, 
    ],
  ],
],

生产环境

使用 https://integrationapi.net

'components' = [
  'sms' => [
    'viewPath' => '@app/sms',
    'class' => \matperez\yii2smssender\components\Sender::class,
    'transportConfig' => [
      'class' => \matperez\yii2smssender\transports\IntegrationApiTransport::class,
      'login' => 'login',
      'password' => 'password',
    ],
  ],
],

在启动文件中放置此内容

\Yii::$container->set(\GuzzleHttp\ClientInterface::class, function() {
  return new \GuzzleHttp\Client();
});

使用方法

编写消息

消息可以由模板生成。模板名称可以是相对路径,也可以是视图的完整路径。Yii 别名也是可接受的。

$message = Yii::$app->sms->compose('template_name', $params);
$message = Yii::$app->sms->compose('@app/sms/template_name', $params);

如果没有提供视图名称,也可以编写一个空消息

$message = Yii::$app->sms->compose();

中间件

在发送之前可以预处理消息。例如记录或修改其内容。中间件应设置为可调用的数组。

'components' = [
  'sms' => [
      'class' => \matperez\yii2smssender\components\Sender::class,
      'middleware' => [
          function(\matperez\yii2smssender\interfaces\IMessage $message) {
              $message->setMessage('new message content');
          }
      ]
  ],
],

发送消息

$message = Yii::$app->sms->compose('some-view', $params);
$message->setTo('1234345456');
$message->setFrom('sender');
$message->send();

余额检查

if (Yii::$app->sms->canFetchBalance()) {
  $balance = Yii::$app->sms->getBalance();
}